Initial commit
This commit is contained in:
commit
e1ee7b16ee
|
@ -0,0 +1,58 @@
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/asottile/pyupgrade
|
||||||
|
rev: v2.3.0
|
||||||
|
hooks:
|
||||||
|
- id: pyupgrade
|
||||||
|
args: [--py37-plus]
|
||||||
|
- repo: https://github.com/psf/black
|
||||||
|
rev: 19.10b0
|
||||||
|
hooks:
|
||||||
|
- id: black
|
||||||
|
args:
|
||||||
|
- --safe
|
||||||
|
- --quiet
|
||||||
|
files: ^((homeassistant|script|tests)/.+)?[^/]+\.py$
|
||||||
|
- repo: https://github.com/codespell-project/codespell
|
||||||
|
rev: v1.16.0
|
||||||
|
hooks:
|
||||||
|
- id: codespell
|
||||||
|
args:
|
||||||
|
- --ignore-words-list=hass,alot,datas,dof,dur,farenheit,hist,iff,ines,ist,lightsensor,mut,nd,pres,referer,ser,serie,te,technik,ue,uint,visability,wan,wanna,withing
|
||||||
|
- --skip="./.*,*.csv,*.json"
|
||||||
|
- --quiet-level=2
|
||||||
|
exclude_types: [csv, json]
|
||||||
|
- repo: https://gitlab.com/pycqa/flake8
|
||||||
|
rev: 3.8.1
|
||||||
|
hooks:
|
||||||
|
- id: flake8
|
||||||
|
additional_dependencies:
|
||||||
|
- flake8-docstrings==1.5.0
|
||||||
|
- pydocstyle==5.0.2
|
||||||
|
files: ^(homeassistant|script|tests)/.+\.py$
|
||||||
|
- repo: https://github.com/PyCQA/bandit
|
||||||
|
rev: 1.6.2
|
||||||
|
hooks:
|
||||||
|
- id: bandit
|
||||||
|
args:
|
||||||
|
- --quiet
|
||||||
|
- --format=custom
|
||||||
|
- --configfile=tests/bandit.yaml
|
||||||
|
files: ^(homeassistant|script|tests)/.+\.py$
|
||||||
|
- repo: https://github.com/pre-commit/mirrors-isort
|
||||||
|
rev: v4.3.21
|
||||||
|
hooks:
|
||||||
|
- id: isort
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v2.4.0
|
||||||
|
hooks:
|
||||||
|
- id: check-executables-have-shebangs
|
||||||
|
stages: [manual]
|
||||||
|
- id: check-json
|
||||||
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||||
|
rev: v0.770
|
||||||
|
hooks:
|
||||||
|
- id: mypy
|
||||||
|
args:
|
||||||
|
- --pretty
|
||||||
|
- --show-error-codes
|
||||||
|
- --show-error-context
|
|
@ -0,0 +1,7 @@
|
||||||
|
from homeassistant import core
|
||||||
|
|
||||||
|
|
||||||
|
async def async_setup(hass: core.HomeAssistant, config: dict) -> bool:
|
||||||
|
"""Set up the Flickerstrip component."""
|
||||||
|
# @TODO: Add setup code.
|
||||||
|
return True
|
|
@ -0,0 +1 @@
|
||||||
|
DOMAIN = "flickerstrip"
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"codeowners": ["@fifitido"],
|
||||||
|
"config_flow": true,
|
||||||
|
"dependencies": [],
|
||||||
|
"documentation": "https://git.fifitido.net/lib/hass_flickerstrip",
|
||||||
|
"domain": "flickerstrip",
|
||||||
|
"iot_class": "local_polling",
|
||||||
|
"name": "Flickerstrip",
|
||||||
|
"requirements": [],
|
||||||
|
"version": "1.0.0"
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"name": "Flickerstrip",
|
||||||
|
"render_readme": true,
|
||||||
|
"iot_class": "local_polling"
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
pytest
|
||||||
|
pytest-cov==2.9.0
|
||||||
|
pytest-homeassistant-custom-component
|
|
@ -0,0 +1,62 @@
|
||||||
|
[coverage:run]
|
||||||
|
source =
|
||||||
|
custom_components
|
||||||
|
|
||||||
|
[coverage:report]
|
||||||
|
exclude_lines =
|
||||||
|
pragma: no cover
|
||||||
|
raise NotImplemented()
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
show_missing = true
|
||||||
|
|
||||||
|
[tool:pytest]
|
||||||
|
testpaths = tests
|
||||||
|
norecursedirs = .git
|
||||||
|
addopts =
|
||||||
|
--strict
|
||||||
|
--cov=custom_components
|
||||||
|
|
||||||
|
[flake8]
|
||||||
|
# https://github.com/ambv/black#line-length
|
||||||
|
max-line-length = 88
|
||||||
|
# E501: line too long
|
||||||
|
# W503: Line break occurred before a binary operator
|
||||||
|
# E203: Whitespace before ':'
|
||||||
|
# D202 No blank lines allowed after function docstring
|
||||||
|
# W504 line break after binary operator
|
||||||
|
ignore =
|
||||||
|
E501,
|
||||||
|
W503,
|
||||||
|
E203,
|
||||||
|
D202,
|
||||||
|
W504
|
||||||
|
|
||||||
|
[isort]
|
||||||
|
# https://github.com/timothycrosley/isort
|
||||||
|
# https://github.com/timothycrosley/isort/wiki/isort-Settings
|
||||||
|
# splits long import on multiple lines indented by 4 spaces
|
||||||
|
multi_line_output = 3
|
||||||
|
include_trailing_comma=True
|
||||||
|
force_grid_wrap=0
|
||||||
|
use_parentheses=True
|
||||||
|
line_length=88
|
||||||
|
indent = " "
|
||||||
|
# by default isort don't check module indexes
|
||||||
|
not_skip = __init__.py
|
||||||
|
# will group `import x` and `from x import` of the same module.
|
||||||
|
force_sort_within_sections = true
|
||||||
|
sections = FUTURE,STDLIB,INBETWEENS,THIRDPARTY,FIRSTPARTY,LOCALFOLDER
|
||||||
|
default_section = THIRDPARTY
|
||||||
|
known_first_party = custom_components,tests
|
||||||
|
forced_separate = tests
|
||||||
|
combine_as_imports = true
|
||||||
|
|
||||||
|
[mypy]
|
||||||
|
python_version = 3.7
|
||||||
|
ignore_errors = true
|
||||||
|
follow_imports = silent
|
||||||
|
ignore_missing_imports = true
|
||||||
|
warn_incomplete_stub = true
|
||||||
|
warn_redundant_casts = true
|
||||||
|
warn_unused_configs = true
|
|
@ -0,0 +1,17 @@
|
||||||
|
# https://bandit.readthedocs.io/en/latest/config.html
|
||||||
|
|
||||||
|
tests:
|
||||||
|
- B108
|
||||||
|
- B306
|
||||||
|
- B307
|
||||||
|
- B313
|
||||||
|
- B314
|
||||||
|
- B315
|
||||||
|
- B316
|
||||||
|
- B317
|
||||||
|
- B318
|
||||||
|
- B319
|
||||||
|
- B320
|
||||||
|
- B325
|
||||||
|
- B602
|
||||||
|
- B604
|
|
@ -0,0 +1,9 @@
|
||||||
|
"""Test component setup."""
|
||||||
|
from homeassistant.setup import async_setup_component
|
||||||
|
|
||||||
|
from custom_components.flickerstrip.const import DOMAIN
|
||||||
|
|
||||||
|
|
||||||
|
async def test_async_setup(hass):
|
||||||
|
"""Test the component gets setup."""
|
||||||
|
assert await async_setup_component(hass, DOMAIN, {}) is True
|
Loading…
Reference in New Issue