Autodoc
Generate documentation from your unit-test.
This library is Python implementation of Autodoc.
Links
Installation
$ virtualenv --distribute autodoc_sample $ source autodoc/bin/activate $ cd autodoc $ pip install autodoc
Usage
Run unittest with PYAUTODOC=1 to generate documents for your tests decorated with @autodoc.generate.
PYAUTODOC=1 python -m unittest examples/test_unittest.py
If you use py.test as test runner.
PYAUTODOC=1 py.test tests examples/test_pytest.py
If you use nose as test runner.
PYAUTODOC=1 nosetests tests examples/test_unittest.py
Example for unittest
class TestUnittest(TestCase):
def setUp(self):
app = create_app
self.client = TestApp(app)
@classmethod
@autodoc.generate('var/test_unittest.rst')
def tearDownClass(cls):
pass
@autodoc.describe('GET /')
def test_get(self):
""" GET / """
res = self.client.get('/')
self.assertEqual(res.status_code, 200)
return res
@autodoc.describe() describe test name.
For example GET / assigned to generated document.
@autodoc.generate(path_to_output) will generate document.
Example for py.test
@pytest.fixture
def setup():
setup = TestApp(create_app)
return setup
@autodoc.generate('var/test_pytest.md', template='templates/markdown.md')
def teardown_module(module):
pass
@autodoc.describe('POST /')
def test_post(setup):
res = setup.post_json('/', params={'id': 1, 'message': 'foo'})
assert res.status_code == 200
return res
Example for requests
import requests
class TestUnittest(TestCase):
def setUp(self):
self.client = requests
@classmethod
@autodoc.generate('var/test_unittest.rst')
def tearDownClass(cls):
pass
@autodoc.describe('POST /')
def test_post(self):
""" POST / """
params = {'id': 1, 'message': 'foo'}
headers = {'content-type': 'application/json'}
res = self.client.post('http://example.com/',
data=params, headers=headers)
self.assertEqual(res.status_code, 200)
return res
Conventions
Return WebTest or requests response in test method
Py-Autodoc must return WebTest response.
@autodoc.describe('POST /')
def test_post(setup):
res = setup.post_json('/', params={'id': 1, 'message': 'foo'})
assert res.status_code == 200
return res # Must return WebTest or requests response.
Generate document point
@autodoc.generate will create document.
If you set @autodoc.generate to each test case, document will generate each file.
class TestUnittest(TestCase):
def setUp(self):
app = create_app
self.client = TestApp(app)
@autodoc.generate('var/indext_get.rst')
@autodoc.describe('GET /')
def test_get(self):
""" GET / """
res = self.client.get('/')
self.assertEqual(res.status_code, 200)
return res
@autodoc.generate('var/foo_get.rst')
@autodoc.describe('GET /foo')
def test_get(self):
""" GET / """
res = self.client.get('/foo')
self.assertEqual(res.status_code, 200)
return res
This will generate var/index_get.rst and var/foo_get.rst.
If you want to generate all tests into single file, decorate @autodoc.generate to tearDownClass, teardown_module fixture.
Configuration
You can configure @autodoc.generat(output, template=path_to_template) to change template file.
Metadata
Release files for autodoc 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| autodoc-0.5.0.tar.gz | 14.2 kB | Without provenance | Details |
Release files / autodoc-0.5.0.tar.gz
| Download URL | autodoc-0.5.0.tar.gz |
|---|---|
| Size | 14.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c4387c5a0f1c09b055bb2e384542ee1e016542f313b2a33d904ca77f0460ded3
|
|
BLAKE2b-256 checksum How to use checksums |
4ec361f746096d2b6c161bd7f3bf8db1fe741b8805cbf0ac9369b4953c37de35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for autodoc 0.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.