[py-svn] r36933 - in py/dist/py/apigen: . testing

guido at codespeak.net guido at codespeak.net
Thu Jan 18 12:24:41 CET 2007


Author: guido
Date: Thu Jan 18 12:24:40 2007
New Revision: 36933

Modified:
   py/dist/py/apigen/htmlgen.py
   py/dist/py/apigen/testing/test_apigen_example.py
Log:
Added links to parent namespace from function pages.


Modified: py/dist/py/apigen/htmlgen.py
==============================================================================
--- py/dist/py/apigen/htmlgen.py	(original)
+++ py/dist/py/apigen/htmlgen.py	Thu Jan 18 12:24:40 2007
@@ -220,36 +220,35 @@
     if len(path) > 1:
         parent_dotted_name = '.'.join(path[:-1])
         navitems.append(indent * 2 * u'\xa0')
-        try:
-            obj = dsa.get_obj(parent_dotted_name)
-        except KeyError:
-            navitems.append(parent_dotted_name)
-            navitems.append(H.br())
-            indent += 1
+        navitems.append(H.NavigationItem(
+                            H.a(parent_dotted_name,
+                                href=linker.get_lazyhref(
+                                        parent_dotted_name))))
+        navitems.append(H.br())
+        indent += 1
+        navitems.append(indent * 2 * u'\xa0')
+        navitems.append(H.NavigationItem(
+                            H.a(dotted_name.split('.')[-1],
+                                href=linker.get_lazyhref(dotted_name))))
+        navitems.append(H.br())
+        indent += 1
+        for cls_dotted_name in dsa.get_class_names():
+            if not cls_dotted_name.startswith('%s.' % (dotted_name,)):
+                continue
             navitems.append(indent * 2 * u'\xa0')
             navitems.append(H.NavigationItem(
-                                H.a(dotted_name,
-                                    href=linker.get_lazyhref(dotted_name))))
-        else:
-            navitems.append(H.NavigationItem(
-                                H.a(parent_dotted_name,
+                                H.a(cls_dotted_name,
                                     href=linker.get_lazyhref(
-                                            parent_dotted_name))))
-            navitems.append(H.br())
-            indent += 1
+                                            cls_dotted_name))))
+        for func_dotted_name in dsa.get_function_names():
+            if not func_dotted_name.startswith('%s.' % (dotted_name,)):
+                continue
             navitems.append(indent * 2 * u'\xa0')
             navitems.append(H.NavigationItem(
-                                H.a(dotted_name.split('.')[-1],
-                                    href=linker.get_lazyhref(dotted_name))))
+                                H.a(func_dotted_name,
+                                    href=linker.get_lazyhref(
+                                            func_dotted_name))))
             navitems.append(H.br())
-            indent += 1
-            for funcname in dsa.get_class_methods(dotted_name):
-                func_dotted_name = '%s.%s' % (dotted_name, funcname)
-                navitems.append(indent * 2 * u'\xa0')
-                navitems.append(H.NavigationItem(
-                                    H.a(funcname,
-                                        href=linker.get_lazyhref(func_dotted_name))))
-                navitems.append(H.br())
     return H.Navigation(*navitems)
 
 re = py.std.re

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	Thu Jan 18 12:24:40 2007
@@ -83,6 +83,9 @@
     def test_build_function_api_pages(self):
         base = py.test.ensuretemp('build_function_api_pages')
         prepare_source_pages(self.linker, self.fs_root, base)
+        prepare_namespace_api_pages(self.linker, self.dsa, base,
+                                    ['pkg.sub', 'pkg.sub.func',
+                                     'pkg.SomeClass', 'pkg.SomeOtherClass'])
         data = prepare_function_api_pages(self.linker, self.dsa,
                                           base, ['pkg.sub.func'])
         build_function_api_pages(self.linker, data, self.project, base)
@@ -226,3 +229,17 @@
                 in html)
         _checkhtml(html)
 
+    def test_build_function_api_pages_nav(self):
+        base = py.test.ensuretemp('build_function_api_pages_nav')
+        prepare_source_pages(self.linker, self.fs_root, base)
+        prepare_namespace_api_pages(self.linker, self.dsa, base,
+                                    ['pkg.sub', 'pkg.sub.func',
+                                     'pkg.SomeClass', 'pkg.SomeOtherClass'])
+        data = prepare_function_api_pages(self.linker, self.dsa,
+                                          base, ['pkg.sub.func'])
+        build_function_api_pages(self.linker, data, self.project, base)
+        funcfile = base.join('api/pkg.sub.func.html')
+        html = funcfile.read()
+        assert '<a href="pkg.sub.html">' in html
+        
+



More information about the pytest-commit mailing list