[py-svn] r36498 - in py/dist/py/apigen: . rest/testing source source/testing testing tracer
guido at codespeak.net
guido at codespeak.net
Thu Jan 11 16:20:05 CET 2007
Author: guido
Date: Thu Jan 11 16:19:54 2007
New Revision: 36498
Added:
py/dist/py/apigen/htmlgen.py (contents, props changed)
py/dist/py/apigen/testing/test_apigen_example.py (contents, props changed)
Modified:
py/dist/py/apigen/linker.py (props changed)
py/dist/py/apigen/rest/testing/test_htmlhandlers.py (props changed)
py/dist/py/apigen/source/color.py (props changed)
py/dist/py/apigen/source/path.py (props changed)
py/dist/py/apigen/source/testing/test_color.py (props changed)
py/dist/py/apigen/testing/ (props changed)
py/dist/py/apigen/testing/__init__.py (props changed)
py/dist/py/apigen/testing/test_linker.py (props changed)
py/dist/py/apigen/tracer/docstorage.py
py/dist/py/apigen/tracer/permastore.py (props changed)
Log:
(hpk, guido) added first bits of html generation, fixeol
Added: py/dist/py/apigen/htmlgen.py
==============================================================================
--- (empty file)
+++ py/dist/py/apigen/htmlgen.py Thu Jan 11 16:19:54 2007
@@ -0,0 +1,35 @@
+import py
+
+html = py.xml.html
+class H(html):
+ class ClassDescription(html.div):
+ pass
+
+ class MethodDescription(html.div):
+ pass
+
+ class MethodSignature(html.div):
+ pass
+
+ class ParameterDescription(html.div):
+ pass
+
+ class Docstring(html.div):
+ pass
+
+def get_param_htmldesc(linker, func):
+ import inspect
+ # XXX copy and modify formatargspec to produce html
+ return H.em(inspect.formatargspec(*inspect.getargspec(func)))
+
+def build_method_html(linker, dsa, dotted_name):
+ func = dsa.get_obj(dotted_name)
+ params = get_param_htmldesc(linker, func)
+ docstring = func.__doc__
+ local_methodname = func.__name__
+ snippet = H.MethodDescription(
+ H.MethodSignature(local_methodname, "(", params, "):"),
+ H.Docstring(docstring),
+ )
+ return snippet
+
Added: py/dist/py/apigen/testing/test_apigen_example.py
==============================================================================
--- (empty file)
+++ py/dist/py/apigen/testing/test_apigen_example.py Thu Jan 11 16:19:54 2007
@@ -0,0 +1,44 @@
+import py
+html = py.xml.html
+from py.__.apigen.linker import Linker
+from py.__.apigen.htmlgen import *
+from py.__.apigen.tracer.docstorage import DocStorage, DocStorageAccessor
+from xml.dom.minidom import parseString
+
+def setup_fs_project():
+ temp = py.test.ensuretemp('apigen_example')
+ temp.ensure("pkg/func.py").write(py.code.Source("""
+ def func(arg1):
+ "docstring"
+ """))
+ temp.ensure("pkg/__init__.py").write(py.code.Source("""
+ from py.initpkg import initpkg
+ initpkg(__name__, exportdefs = {
+ 'pkg.sub.func': ("./func.py", "func")
+ })
+ """))
+ return temp, 'pkg'
+
+def get_dsa(fsroot, pkgname):
+ py.std.sys.path.insert(0, str(fsroot))
+ pkg = __import__(pkgname)
+ ds = DocStorage()
+ ds.from_pkg(pkg)
+ dsa = DocStorageAccessor(ds)
+ return dsa
+
+class TestExampleProject(object):
+ def setup_class(cls):
+ cls.fs_root, cls.pkg_name = setup_fs_project()
+ cls.dsa = get_dsa(cls.fs_root, cls.pkg_name)
+
+ def setup_method(self, meth):
+ self.linker = Linker()
+
+ def test_method_description(self):
+ snippet = build_method_html(self.linker, self.dsa, 'pkg.sub.func')
+ html = snippet.unicode()
+ print html
+ # XXX (x)html validity testing would be nice...
+ parseString(html)
+
Modified: py/dist/py/apigen/tracer/docstorage.py
==============================================================================
--- py/dist/py/apigen/tracer/docstorage.py (original)
+++ py/dist/py/apigen/tracer/docstorage.py Thu Jan 11 16:19:54 2007
@@ -67,6 +67,7 @@
if to_key:
self.descs[to_key] = to_val
self.make_cache()
+ # XXX
return self
# XXX: This function becomes slowly outdated and even might go away at some
@@ -121,6 +122,7 @@
base = getattr(base, elem)
d[key] = base
self.from_dict(d, keep_frames)
+ # XXX
return self
def from_module(self, func):
More information about the pytest-commit
mailing list