[py-svn] r37196 - py/dist/py/doc
guido at codespeak.net
guido at codespeak.net
Tue Jan 23 15:55:53 CET 2007
Author: guido
Date: Tue Jan 23 15:55:52 2007
New Revision: 37196
Modified:
py/dist/py/doc/conftest.py
py/dist/py/doc/test_conftest.py
Log:
Added textrole for links to apigen documentation.
Modified: py/dist/py/doc/conftest.py
==============================================================================
--- py/dist/py/doc/conftest.py (original)
+++ py/dist/py/doc/conftest.py Tue Jan 23 15:55:52 2007
@@ -1,6 +1,7 @@
from __future__ import generators
import py
from py.__.misc import rest
+from py.__.rest import directive
Option = py.test.config.Option
option = py.test.config.addoptions("documentation check options",
@@ -213,3 +214,27 @@
if p.check(file=1):
return self.ReSTChecker(p, parent=self)
Directory = DocDirectory
+
+def resolve_linkrole(name, text):
+ if name == 'api':
+ if text == 'py':
+ return 'py', '../../apigen/api/index.html'
+ assert text.startswith('py.'), (
+ 'api link "%s" does not point to the py package') % (text,)
+ dotted_name = text
+ if dotted_name.find('(') > -1:
+ dotted_name = dotted_name[:text.find('(')]
+ dotted_name = '.'.join(dotted_name.split('.')[1:]) # remove pkg root
+ return text, '../../apigen/api/%s.html' % (dotted_name,)
+ elif name == 'source':
+ assert text.startswith('py/'), ('source link "%s" does not point '
+ 'to the py package') % (text,)
+ relpath = '/'.join(text.split('/')[1:])
+ if relpath.endswith('/') or not relpath:
+ relpath += 'index.html'
+ else:
+ relpath += '.html'
+ return text, '../../apigen/source/%s' % (relpath,)
+directive.register_linkrole('api', resolve_linkrole)
+directive.register_linkrole('source', resolve_linkrole)
+
Modified: py/dist/py/doc/test_conftest.py
==============================================================================
--- py/dist/py/doc/test_conftest.py (original)
+++ py/dist/py/doc/test_conftest.py Tue Jan 23 15:55:52 2007
@@ -55,3 +55,20 @@
l2 = session.getitemoutcomepairs(py.test.Item.Skipped)
assert len(l+l2) == 3
+def test_resolve_linkrole():
+ from py.__.doc.conftest import resolve_linkrole
+ assert resolve_linkrole('api', 'py.foo.bar') == (
+ 'py.foo.bar', '../../apigen/api/foo.bar.html')
+ assert resolve_linkrole('api', 'py.foo.bar()') == (
+ 'py.foo.bar()', '../../apigen/api/foo.bar.html')
+ assert resolve_linkrole('api', 'py') == (
+ 'py', '../../apigen/api/index.html')
+ py.test.raises(AssertionError, 'resolve_linkrole("api", "foo.bar")')
+ assert resolve_linkrole('source', 'py/foo/bar.py') == (
+ 'py/foo/bar.py', '../../apigen/source/foo/bar.py.html')
+ assert resolve_linkrole('source', 'py/foo/') == (
+ 'py/foo/', '../../apigen/source/foo/index.html')
+ assert resolve_linkrole('source', 'py/') == (
+ 'py/', '../../apigen/source/index.html')
+ py.test.raises(AssertionError, 'resolve_linkrole("source", "/foo/bar/")')
+
More information about the pytest-commit
mailing list