From 2bdeb130698bb9c7917111cfbeb657c3f25b5be4 Mon Sep 17 00:00:00 2001 From: hpk Date: Wed, 24 Jan 2007 17:40:01 +0100 Subject: [PATCH] [svn r37275] merging of file:///svn/py/branch/config/py/apigen/testing/test_apigen_functional.py revisions 36936 to 37267: ------------------------------------------------------------------------ r37020 | hpk | 2007-01-19 17:48:15 +0100 (Fri, 19 Jan 2007) | 3 lines switching in the new way of getting to a sessionclass, removing code in cmdline.py and elsewhere accordingly ------------------------------------------------------------------------ r36937 | fijal | 2007-01-18 14:22:54 +0100 (Thu, 18 Jan 2007) | 2 lines Create a branch for further config cleanups. ------------------------------------------------------------------------ --HG-- branch : trunk --- .../test_apigen_functional.py.merge.tmp | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 py/apigen/testing/test_apigen_functional.py.merge.tmp diff --git a/py/apigen/testing/test_apigen_functional.py.merge.tmp b/py/apigen/testing/test_apigen_functional.py.merge.tmp new file mode 100644 index 000000000..2e0f5752b --- /dev/null +++ b/py/apigen/testing/test_apigen_functional.py.merge.tmp @@ -0,0 +1,116 @@ +""" functional test for apigen.py + + script to build api + source docs from py.test +""" + +import py + +def setup_fs_project(): + temp = py.test.ensuretemp('apigen_functional') + temp.ensure("pkg/func.py").write(py.code.Source("""\ + def func(arg1): + "docstring" + + def func_2(arg1, arg2): + return arg1(arg2) + """)) + temp.ensure('pkg/sometestclass.py').write(py.code.Source("""\ + class SomeTestClass(object): + " docstring sometestclass " + def __init__(self, somevar): + self.somevar = somevar + + def get_somevar(self): + " get_somevar docstring " + return self.somevar + """)) + temp.ensure('pkg/sometestsubclass.py').write(py.code.Source("""\ + from sometestclass import SomeTestClass + class SomeTestSubClass(SomeTestClass): + " docstring sometestsubclass " + def get_somevar(self): + return self.somevar + 1 + """)) + temp.ensure('pkg/somenamespace.py').write(py.code.Source("""\ + def foo(): + return 'bar' + def baz(qux): + return qux + """)) + temp.ensure("pkg/__init__.py").write(py.code.Source("""\ + from py.initpkg import initpkg + initpkg(__name__, exportdefs = { + 'main.sub.func': ("./func.py", "func"), + 'main.func': ("./func.py", "func_2"), + 'main.SomeTestClass': ('./sometestclass.py', 'SomeTestClass'), + 'main.SomeTestSubClass': ('./sometestsubclass.py', + 'SomeTestSubClass'), + }) + """)) + temp.ensure('pkg/test/test_pkg.py').write(py.code.Source("""\ + import py + py.std.sys.path.insert(0, + py.magic.autopath().dirpath().dirpath().dirpath().strpath) + import pkg + + # this mainly exists to provide some data to the tracer + def test_pkg(): + s = pkg.main.SomeTestClass(10) + assert s.get_somevar() == 10 + s = pkg.main.SomeTestClass('10') + assert s.get_somevar() == '10' + s = pkg.main.SomeTestSubClass(10) + assert s.get_somevar() == 11 + s = pkg.main.SomeTestSubClass('10') + py.test.raises(TypeError, 's.get_somevar()') + assert pkg.main.sub.func(10) is None + assert pkg.main.sub.func(20) is None + s = pkg.main.func(pkg.main.SomeTestClass, 10) + assert isinstance(s, pkg.main.SomeTestClass) + """)) + return temp, 'pkg' + +def test_apigen_functional(): + fs_root, package_name = setup_fs_project() + tempdir = py.test.ensuretemp('test_apigen_functional_results') + parentdir = py.magic.autopath().dirpath().dirpath() + pkgdir = fs_root.join('pkg') + try: + output = py.process.cmdexec('APIGEN_TARGET="%s" py.test ' + '--apigen="%s/apigen.py" "%s"' % ( + tempdir, parentdir, pkgdir)) + except py.error.Error, e: + print e.out + raise + assert output.lower().find('traceback') == -1 + + # just some quick content checks + apidir = tempdir.join('api') + assert apidir.check(dir=True) + sometestclass_api = apidir.join('main.SomeTestClass.html') + assert sometestclass_api.check(file=True) + html = sometestclass_api.read() + assert 'SomeTestClass' in html + # XXX not linking to method files anymore + #sometestclass_init_api = apidir.join('main.SomeTestClass.__init__.html') + #assert sometestclass_init_api.check(file=True) + #assert sometestclass_init_api.read().find( + # '__init__') > -1 + namespace_api = apidir.join('main.html') + assert namespace_api.check(file=True) + html = namespace_api.read() + assert 'SomeTestClass' in html + + sourcedir = tempdir.join('source') + assert sourcedir.check(dir=True) + sometestclass_source = sourcedir.join('sometestclass.py.html') + assert sometestclass_source.check(file=True) + html = sometestclass_source.read() + assert '
sources for sometestclass.py
' in html + + # XXX later... + #index = sourcedir.join('index.html') + #assert index.check(file=True) + #html = index.read() + #assert 'main' in html +