Package: autodoc
Generate documentation from your unit-test.This library is Python implementation of Autodoc.AutodocTest::JsonAPI::AutodocLinksRepositoryDocumentationInstallation$ virtualenv --distribute autodoc_sample
$ source autodoc/bin/activate
$ cd autodoc
$ pip install autodocUsageRun unittest with PYAUTODOC=1 to generate documents for your tests decorated with@autodoc.generate.PYAUTODOC=1 python -m unittest examples/test_unittest.pyIf you use py.test as test runner.PYAUTODOC=1 py.test tests examples/test_pytest.pyIf you use nose as test runner.PYAUTODOC=1 nosetests tests examples/test_unittest.pyExample for unittestclass 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 exampleGET /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 resExample for requestsimport 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 resConventionsReturn WebTest or requests response in test methodPy-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.generatewill create document.If you set@autodoc.generateto 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 resThis will generatevar/index_get.rstandvar/foo_get.rst.If you want to generate all tests into single file,
decorate@autodoc.generatetotearDownClass,teardown_modulefixture.ConfigurationYou can configure@autodoc.generat(output, template=path_to_template)to change template file.