Simplify API documentation by using doctests (#73)

* Add doctests to SmartBulb

* Add SmartDevice doctests, cleanup README.md

* add doctests for smartplug and smartstrip

* add discover doctests

* Fix bulb mock

* add smartdimmer doctests

* add sphinx-generated docs, cleanup readme a bit

* remove sphinx-click as it does not work with asyncclick

* in preparation for rtd hooking, move doc deps to be separate from dev deps

* pytestmark needs to be applied separately for each and every file, this fixes the tests

* use pathlib for resolving relative paths

* Skip discovery doctest on python3.7

The code is just fine, but some reason the mocking behaves differently between 3.7 and 3.8.
The latter seems to accept a discrete object for asyncio.run where the former expects a coroutine..
This commit is contained in:
Teemu R
2020-06-30 02:29:52 +02:00
committed by GitHub
parent 99e0c4a418
commit f9a987ca18
34 changed files with 748 additions and 303 deletions

View File

@@ -18,11 +18,17 @@ python = "^3.7"
importlib-metadata = "*"
asyncclick = "^7"
# required only for docs
sphinx = { version = "^3.1.1", optional = true }
m2r = { version = "^0.2.1", optional = true }
sphinx_rtd_theme = { version = "^0.5.0", optional = true }
sphinxcontrib-programoutput = { version = "^0.16", optional = true }
[tool.poetry.dev-dependencies]
pytest = "^5"
pytest-azurepipelines = "^0.8"
pytest-cov = "^2.8"
pytest-asyncio = "^0.11"
pytest-asyncio = "^0.12"
pytest-sugar = "*"
pre-commit = "*"
voluptuous = "*"
@@ -30,6 +36,11 @@ toml = "*"
tox = "*"
pytest-mock = "^3.1.0"
codecov = "^2.0"
xdoctest = "^0.12"
[tool.poetry.extras]
docs = ["sphinx", "sphinx_rtd_theme", "m2r", "sphinxcontrib-programoutput"]
[tool.isort]
multi_line_output = 3