[py-svn] r32910 - in py/branch/apigen/py/test/tracer: . testing
fijal at codespeak.net
fijal at codespeak.net
Thu Oct 5 14:19:34 CEST 2006
Author: fijal
Date: Thu Oct 5 14:19:12 2006
New Revision: 32910
Added:
py/branch/apigen/py/test/tracer/genrest.py (contents, props changed)
Modified:
py/branch/apigen/py/test/tracer/description.py
py/branch/apigen/py/test/tracer/docstorage.py
py/branch/apigen/py/test/tracer/testing/test_docgen.py
Log:
First version of rest generator. Intermediate checkin (battery dying), Need rest fixes and test for that.
Modified: py/branch/apigen/py/test/tracer/description.py
==============================================================================
--- py/branch/apigen/py/test/tracer/description.py (original)
+++ py/branch/apigen/py/test/tracer/description.py Thu Oct 5 14:19:12 2006
@@ -7,6 +7,9 @@
self.filename = filename
self.lineno = lineno
self.source = source
+
+ def get_tuple(self):
+ return self.filename, self.lineno, self.source
#class __extend__(FunctionDesc):
def consider_call(self, inputcells):
Modified: py/branch/apigen/py/test/tracer/docstorage.py
==============================================================================
--- py/branch/apigen/py/test/tracer/docstorage.py (original)
+++ py/branch/apigen/py/test/tracer/docstorage.py Thu Oct 5 14:19:12 2006
@@ -49,6 +49,7 @@
return (key, desc)
def from_pkg(self, module):
+ self.module = module
self.from_dict(module.__package__.__dict__)
return self
@@ -75,3 +76,15 @@
def get_function_callpoints(self, name):
# return list of tuple (filename, fileline, line)
return self.ds.descs[name].call_sites
+
+ def get_module_info(self):
+ module = getattr(self.ds, 'module', None)
+ if module is None:
+ return "Lack of module info"
+ try:
+ retval = module.__doc__ or "*undocumented*"
+ retval = module.__package__.description
+ retval = module.__package__.long_description
+ except AttributeError:
+ pass
+ return retval
Added: py/branch/apigen/py/test/tracer/genrest.py
==============================================================================
--- (empty file)
+++ py/branch/apigen/py/test/tracer/genrest.py Thu Oct 5 14:19:12 2006
@@ -0,0 +1,36 @@
+
+""" Generating ReST output (raw, not python)
+out of data that we know about function calls
+"""
+
+import sys
+
+from py.__.test.tracer.docstorage import DocStorageAccessor
+
+class RestGen(object):
+ def __init__(self, ds, output=sys.stdout):
+ self.dsa = DocStorageAccessor(ds)
+ self.output = output
+
+ def writeline(self, data=""):
+ self.output.write(data + "\n")
+
+ def write(self):
+ self.writeline("=======")
+ self.writeline(self.dsa.get_module_info())
+ self.writeline("=======")
+ self.writeline()
+ self.writeline("Functions exported:")
+ self.writeline("===================")
+ for key in self.dsa.get_names():
+ self.writeline()
+ self.writeline("%s description:" % key)
+ self.writeline("-------")
+ self.writeline(self.dsa.get_function_doc(key))
+ args = self.dsa.get_function_args(key)
+ arg_str = "(%s)" % (",".join([str(i) for i in args]))
+ self.writeline("Types of call: %s" % arg_str)
+ self.writeline()
+ self.writeline("Call places:")
+ for call_site in self.dsa.get_function_callpoints(key):
+ self.writeline("File %s:%s\n%s" % call_site.get_tuple())
Modified: py/branch/apigen/py/test/tracer/testing/test_docgen.py
==============================================================================
--- py/branch/apigen/py/test/tracer/testing/test_docgen.py (original)
+++ py/branch/apigen/py/test/tracer/testing/test_docgen.py Thu Oct 5 14:19:12 2006
@@ -32,7 +32,10 @@
assert isinstance(inputcells[2], model.SomeObject)
cs = desc.call_sites
assert len(cs) == 2
- assert cs[0].filename == __file__
+ f_name = __file__
+ if f_name.endswith('.pyc'):
+ f_name = f_name[:-1]
+ assert cs[0].filename == f_name
assert cs[0].lineno == test_basic.func_code.co_firstlineno + 5
- assert cs[1].filename == __file__
+ assert cs[1].filename == f_name
assert cs[1].lineno == test_basic.func_code.co_firstlineno + 6
More information about the pytest-commit
mailing list