[py-svn] r36547 - in py/dist/py/apigen: . testing
guido at codespeak.net
guido at codespeak.net
Fri Jan 12 12:01:02 CET 2007
Author: guido
Date: Fri Jan 12 12:01:00 2007
New Revision: 36547
Added:
py/dist/py/apigen/conftest.py
Modified:
py/dist/py/apigen/htmlgen.py
py/dist/py/apigen/testing/test_apigen_example.py
Log:
Testing + fixed class page generation (very simple still), added optional web
(XHTML validity) testing.
Added: py/dist/py/apigen/conftest.py
==============================================================================
--- (empty file)
+++ py/dist/py/apigen/conftest.py Fri Jan 12 12:01:00 2007
@@ -0,0 +1,10 @@
+import py
+
+Option = py.test.Config.Option
+option = py.test.Config.addoptions("apigen test options",
+ Option('', '--webcheck',
+ action="store_true", dest="webcheck", default=False,
+ help="run XHTML validation tests"
+ ),
+)
+
Modified: py/dist/py/apigen/htmlgen.py
==============================================================================
--- py/dist/py/apigen/htmlgen.py (original)
+++ py/dist/py/apigen/htmlgen.py Fri Jan 12 12:01:00 2007
@@ -61,7 +61,7 @@
def build_class_view(linker, dsa, dotted_name):
cls = dsa.get_obj(dotted_name)
docstring = cls.__doc__
- bases = dsa.get_possible_base_classes(dotted_name)
+ bases = [str(b) for b in dsa.get_possible_base_classes(dotted_name)]
methods = dsa.get_class_methods(dotted_name)
snippet = H.ClassDescription(
# XXX bases HTML
@@ -69,8 +69,8 @@
H.Docstring(docstring),
)
for method in methods:
- # XXX perhaps we should pass in a
- snippet += build_short_method_view(linker, dsa, method.name)
+ snippet += build_short_method_view(linker, dsa, '%s.%s' % (dotted_name,
+ method))
return snippet
def build_method_view(linker, dsa, dotted_name):
Modified: py/dist/py/apigen/testing/test_apigen_example.py
==============================================================================
--- py/dist/py/apigen/testing/test_apigen_example.py (original)
+++ py/dist/py/apigen/testing/test_apigen_example.py Fri Jan 12 12:01:00 2007
@@ -5,6 +5,8 @@
from py.__.apigen.tracer.docstorage import DocStorage, DocStorageAccessor
from py.__.apigen.project import Project
from xml.dom.minidom import parseString
+from py.__.test.web import webcheck
+from py.__.apigen.conftest import option
def setup_fs_project():
temp = py.test.ensuretemp('apigen_example')
@@ -12,10 +14,19 @@
def func(arg1):
"docstring"
"""))
+ temp.ensure('pkg/someclass.py').write(py.code.Source("""
+ class SomeClass(object):
+ " docstring someclass "
+ def __init__(self, somevar):
+ self.somevar = somevar
+ def get_somevar(self):
+ return self.somevar
+ """))
temp.ensure("pkg/__init__.py").write(py.code.Source("""
from py.initpkg import initpkg
initpkg(__name__, exportdefs = {
- 'pkg.sub.func': ("./func.py", "func")
+ 'pkg.sub.func': ("./func.py", "func"),
+ 'pkg.SomeClass': ('./someclass.py', 'SomeClass'),
})
"""))
return temp, 'pkg'
@@ -41,7 +52,6 @@
snippet = build_full_method_view(self.linker, self.dsa, 'pkg.sub.func')
html = snippet.unicode()
print html
- # XXX (x)html validity testing would be nice...
parseString(html)
def test_build_method_api_pages(self):
@@ -50,4 +60,14 @@
['pkg.sub.func'])
funcfile = base.join('api/pkg.sub.func.html')
assert funcfile.check()
+ html = funcfile.read()
+ parseString(html)
+ if option.webcheck:
+ webcheck.check_html(html)
+
+ def test_build_class_view(self):
+ snippet = build_class_view(self.linker, self.dsa, 'pkg.SomeClass')
+ html = snippet.unicode()
+ print html
+ parseString(html)
More information about the pytest-commit
mailing list