[svn r38183] Made that py.execnet.Channel (referring to py.__.execnet.channel.Channel) is
picked up by the apigen doc generator, fixed some bugs that made that that didn't work previously. --HG-- branch : trunk
This commit is contained in:
		
							parent
							
								
									e89d5e5880
								
							
						
					
					
						commit
						1c1df46a55
					
				|  | @ -29,7 +29,7 @@ def get_documentable_items_pkgdir(pkgdir): | |||
| def get_documentable_items(pkgdir): | ||||
|     pkgname, pkgdict = get_documentable_items_pkgdir(pkgdir) | ||||
|     from py.__.execnet.channel import Channel | ||||
|     # pkgdict['execnet.Channel'] = Channel  # XXX doesn't work  | ||||
|     pkgdict['execnet.Channel'] = Channel | ||||
|     return pkgname, pkgdict | ||||
| 
 | ||||
| def build(pkgdir, dsa, capture): | ||||
|  |  | |||
|  | @ -136,7 +136,7 @@ def enumerate_and_color(codelines, firstlineno, enc): | |||
|             break | ||||
|     return snippet | ||||
| 
 | ||||
| def get_obj(pkg, dotted_name): | ||||
| def get_obj(dsa, pkg, dotted_name): | ||||
|     full_dotted_name = '%s.%s' % (pkg.__name__, dotted_name) | ||||
|     if dotted_name == '': | ||||
|         return pkg | ||||
|  | @ -146,8 +146,11 @@ def get_obj(pkg, dotted_name): | |||
|         marker = [] | ||||
|         ret = getattr(ret, item, marker) | ||||
|         if ret is marker: | ||||
|             raise NameError('can not access %s in %s' % (item, | ||||
|                                                          full_dotted_name)) | ||||
|             try: | ||||
|                 return dsa.get_obj(dotted_name) | ||||
|             except KeyError: | ||||
|                 raise NameError('can not access %s in %s' % (item, | ||||
|                                  full_dotted_name)) | ||||
|     return ret | ||||
| 
 | ||||
| # the PageBuilder classes take care of producing the docs (using the stuff | ||||
|  | @ -314,7 +317,7 @@ class ApiPageBuilder(AbstractPageBuilder): | |||
|     def build_callable_view(self, dotted_name): | ||||
|         """ build the html for a class method """ | ||||
|         # XXX we may want to have seperate | ||||
|         func = get_obj(self.pkg, dotted_name) | ||||
|         func = get_obj(self.dsa, self.pkg, dotted_name) | ||||
|         docstring = func.__doc__  | ||||
|         if docstring: | ||||
|             docstring = deindent(docstring) | ||||
|  | @ -348,7 +351,7 @@ class ApiPageBuilder(AbstractPageBuilder): | |||
| 
 | ||||
|     def build_class_view(self, dotted_name): | ||||
|         """ build the html for a class """ | ||||
|         cls = get_obj(self.pkg, dotted_name) | ||||
|         cls = get_obj(self.dsa, self.pkg, dotted_name) | ||||
|         # XXX is this a safe check? | ||||
|         try: | ||||
|             sourcefile = inspect.getsourcefile(cls) | ||||
|  | @ -419,7 +422,7 @@ class ApiPageBuilder(AbstractPageBuilder): | |||
| 
 | ||||
|     def build_namespace_view(self, namespace_dotted_name, item_dotted_names): | ||||
|         """ build the html for a namespace (module) """ | ||||
|         obj = get_obj(self.pkg, namespace_dotted_name) | ||||
|         obj = get_obj(self.dsa, self.pkg, namespace_dotted_name) | ||||
|         docstring = obj.__doc__ | ||||
|         snippet = H.NamespaceDescription( | ||||
|             H.NamespaceDef(namespace_dotted_name), | ||||
|  |  | |||
|  | @ -110,7 +110,7 @@ def setup_fs_project(name): | |||
| 
 | ||||
| def test_get_documentable_items(): | ||||
|     fs_root, package_name = setup_fs_project('test_get_documentable_items') | ||||
|     pkgname, documentable = apigen.get_documentable_items( | ||||
|     pkgname, documentable = apigen.get_documentable_items_pkgdir( | ||||
|                                                fs_root.join(package_name)) | ||||
|     assert pkgname == 'pak' | ||||
|     assert sorted(documentable.keys()) ==  [ | ||||
|  |  | |||
|  | @ -35,13 +35,17 @@ def setup_pkg(testname): | |||
|         def test_foo(): | ||||
|             assert foo(1) == 2 | ||||
|     """)) | ||||
|     initfile = pkgpath.ensure('__init__.py').write(py.code.Source("""\ | ||||
|     initfile = pkgpath.ensure('__init__.py').write(py.code.Source(""" | ||||
|         import py | ||||
|         from py.__.initpkg import initpkg | ||||
|         initpkg(__name__, exportdefs={ | ||||
|             'sub.foo': ('./mod.py', 'foo'), | ||||
|         }) | ||||
|     """)) | ||||
|     initfile = pkgpath.ensure('apigen/apigen.py').write(py.code.Source(""" | ||||
|         from py.__.apigen.apigen import build, \ | ||||
|              get_documentable_items_pkgdir as get_documentable_items | ||||
|     """)) | ||||
|     return pkgpath | ||||
| 
 | ||||
| def test_run_tests(): | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue