[py-svn] r34629 - in py/dist/py/apigen/tracer: . testing
fijal at codespeak.net
fijal at codespeak.net
Wed Nov 15 14:56:29 CET 2006
Author: fijal
Date: Wed Nov 15 14:56:28 2006
New Revision: 34629
Modified:
py/dist/py/apigen/tracer/docstorage.py
py/dist/py/apigen/tracer/testing/test_docgen.py
Log:
Add simple idea how to iterate over base classes.
Modified: py/dist/py/apigen/tracer/docstorage.py
==============================================================================
--- py/dist/py/apigen/tracer/docstorage.py (original)
+++ py/dist/py/apigen/tracer/docstorage.py Wed Nov 15 14:56:28 2006
@@ -254,3 +254,11 @@
def get_function_exceptions(self, name):
return sorted(self.ds.descs[name].exceptions.keys())
+
+ def get_possible_base_classes(self, cls):
+ retval = []
+ for base in cls.__bases__:
+ for desc in self.ds.descs.values():
+ if isinstance(desc, ClassDesc) and desc.pyobj is base:
+ retval.append(desc)
+ return retval
Modified: py/dist/py/apigen/tracer/testing/test_docgen.py
==============================================================================
--- py/dist/py/apigen/tracer/testing/test_docgen.py (original)
+++ py/dist/py/apigen/tracer/testing/test_docgen.py Wed Nov 15 14:56:28 2006
@@ -7,6 +7,7 @@
#try:
from py.__.apigen.tracer.tracer import DocStorage, Tracer
+from py.__.apigen.tracer.docstorage import DocStorageAccessor
from py.__.apigen.tracer.testing.runtest import cut_pyc
from py.__.apigen.tracer.description import FunctionDesc
from py.__.apigen.tracer import model
@@ -216,3 +217,17 @@
assert ds.descs['x'].exceptions.keys() == [ZeroDivisionError]
assert ds.descs['y'].exceptions.keys() == [ZeroDivisionError]
assert ds.descs['z'].exceptions.keys() == []
+
+def test_bases():
+ class A:
+ pass
+
+ class B:
+ pass
+
+ class C(A,B):
+ pass
+
+ ds = DocStorage().from_dict({'C':C, 'B':B})
+ dsa = DocStorageAccessor(ds)
+ assert dsa.get_possible_base_classes(C) == [ds.descs['B']]
More information about the py-svn
mailing list