From 0ac1d3596e57bc710c7a9dcec9129cd43e247add Mon Sep 17 00:00:00 2001 From: Jim Fulton Date: Sat, 28 Aug 2004 19:50:47 +0000 Subject: [PATCH] Merged from trunk: r27323 | jim | 2004-08-28 15:31:22 -0400 (Sat, 28 Aug 2004) | 15 lines Integrated the latest doctest rom the Python cvs. This brought two backward-incompatible changes: - setUp and tearDown functions are now passed a test argument, which is a doctest.DocTest. This provides access to the test globals. - The names of doctest reporting options for requesting diff output have changed. Thesechanges are both positive for the long run, despite the short-term backward-incompatability. Better before X3.0 final than later. --- classmodule/__init__.py | 2 +- classmodule/tests.py | 8 ++--- ifacemodule/tests.py | 10 +++--- servicemodule/tests.py | 42 ++++++++++++++++++++++ tests.py | 9 ++--- utilitymodule/tests.py | 78 +++++++++++++++++++++++++++++++++++++++++ viewmodule/tests.py | 11 ++---- zcmlmodule/tests.py | 4 +-- 8 files changed, 135 insertions(+), 29 deletions(-) create mode 100644 servicemodule/tests.py create mode 100644 utilitymodule/tests.py diff --git a/classmodule/__init__.py b/classmodule/__init__.py index b34d31e1..81870bf0 100644 --- a/classmodule/__init__.py +++ b/classmodule/__init__.py @@ -184,7 +184,7 @@ class Module(ReadContainerBase): >>> names = module['tests'].keys() >>> names.sort() >>> names - ['Root', 'pprint', 'rootLocation', 'setUp', 'tearDown', 'test_suite'] + ['Root', 'pprint', 'rootLocation', 'setUp', 'test_suite'] """ implements(ILocation, IModuleDocumentation) diff --git a/classmodule/tests.py b/classmodule/tests.py index 2ab0ebd4..4bff4c73 100644 --- a/classmodule/tests.py +++ b/classmodule/tests.py @@ -44,7 +44,7 @@ from zope.app.apidoc.interfaces import IDocumentationModule -def setUp(): +def setUp(test): placelesssetup.setUp() module = ClassModule() module.__name__ = '' @@ -74,10 +74,6 @@ def setUp(): ReStructuredTextToHTMLRenderer) -def tearDown(): - placelesssetup.tearDown() - - def foo(cls, bar=1, *args): """This is the foo function.""" foo.deprecated = True @@ -110,7 +106,7 @@ def getModuleDetailsView(): def test_suite(): return unittest.TestSuite(( DocTestSuite('zope.app.apidoc.classmodule.browser', - setUp=setUp, tearDown=tearDown), + setUp=setUp, tearDown=placelesssetup.tearDown), DocTestSuite('zope.app.apidoc.classmodule'), )) diff --git a/ifacemodule/tests.py b/ifacemodule/tests.py index 58f929f5..8175d690 100644 --- a/ifacemodule/tests.py +++ b/ifacemodule/tests.py @@ -92,7 +92,7 @@ def getInterfaceDetails(): return view -def setUp(): +def setUp(test): placelesssetup.setUp() provideInterface(None, IDocumentationModule) provideInterface('IInterfaceModule', IInterfaceModule) @@ -121,17 +121,15 @@ def setUp(): sm.defineService('Foo', IFoo) sm.provideService('Foo', Foo()) -def tearDown(): - placelesssetup.tearDown() def test_suite(): return unittest.TestSuite(( DocTestSuite('zope.app.apidoc.ifacemodule', - setUp=setUp, tearDown=tearDown), + setUp=setUp, tearDown=placelesssetup.tearDown), DocTestSuite('zope.app.apidoc.ifacemodule.menu', - setUp=setUp, tearDown=tearDown), + setUp=setUp, tearDown=placelesssetup.tearDown), DocTestSuite('zope.app.apidoc.ifacemodule.browser', - setUp=setUp, tearDown=tearDown), + setUp=setUp, tearDown=placelesssetup.tearDown), )) if __name__ == '__main__': diff --git a/servicemodule/tests.py b/servicemodule/tests.py new file mode 100644 index 00000000..20c96ee7 --- /dev/null +++ b/servicemodule/tests.py @@ -0,0 +1,42 @@ +############################################################################## +# +# Copyright (c) 2004 Zope Corporation and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## +"""Tests for the Service Documentation Module + +$Id$ +""" +import unittest +from zope.testing.doctestunit import DocTestSuite +from zope.app.tests import placelesssetup, ztapi + +from zope.app.tree.interfaces import IUniqueId +from zope.app.tree.adapters import LocationUniqueId + +from zope.app.traversing.interfaces import IPhysicallyLocatable +from zope.app.location.traversing import LocationPhysicallyLocatable + +def setUp(test): + placelesssetup.setUp() + ztapi.provideAdapter(None, IUniqueId, LocationUniqueId) + ztapi.provideAdapter(None, IPhysicallyLocatable, + LocationPhysicallyLocatable) + +def test_suite(): + return unittest.TestSuite(( + DocTestSuite('zope.app.apidoc.servicemodule'), + DocTestSuite('zope.app.apidoc.servicemodule.browser', + setUp=setUp, tearDown=placelesssetup.tearDown), + )) + +if __name__ == '__main__': + unittest.main() diff --git a/tests.py b/tests.py index d4ce40f8..e3925b50 100644 --- a/tests.py +++ b/tests.py @@ -33,7 +33,7 @@ from zope.app.renderer.rest import ReStructuredTextToHTMLRenderer -def setUp(): +def setUp(test): placelesssetup.setUp() ztapi.provideUtility(IDocumentationModule, InterfaceModule(), 'Interface') @@ -45,9 +45,6 @@ def setUp(): ztapi.browserView(IReStructuredTextSource, '', ReStructuredTextToHTMLRenderer) -def tearDown(): - placelesssetup.tearDown() - # Generally useful classes and functions @@ -108,9 +105,9 @@ def pprint(info): def test_suite(): return unittest.TestSuite(( DocTestSuite('zope.app.apidoc', - setUp=setUp, tearDown=tearDown), + setUp=setUp, tearDown=placelesssetup.tearDown), DocTestSuite('zope.app.apidoc.browser.apidoc', - setUp=setUp, tearDown=tearDown), + setUp=setUp, tearDown=placelesssetup.tearDown), DocTestSuite('zope.app.apidoc.utilities'), DocTestSuite('zope.app.apidoc.tests'), )) diff --git a/utilitymodule/tests.py b/utilitymodule/tests.py new file mode 100644 index 00000000..c549167e --- /dev/null +++ b/utilitymodule/tests.py @@ -0,0 +1,78 @@ +############################################################################## +# +# Copyright (c) 2004 Zope Corporation and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## +"""Tests for the Utility Documentation Module + +$Id$ +""" +import unittest + +from zope.interface import implements +from zope.publisher.browser import TestRequest +from zope.testing.doctestunit import DocTestSuite + +from zope.app import zapi +from zope.app.tests import placelesssetup, ztapi + +from zope.app.apidoc.interfaces import IDocumentationModule +from zope.app.apidoc.tests import Root +from zope.app.apidoc.ifacemodule import InterfaceModule +from zope.app.apidoc.classmodule import ClassModule +from zope.app.apidoc.utilitymodule import UtilityModule, Utility +from browser import UtilityDetails + +from zope.app.tree.interfaces import IUniqueId +from zope.app.tree.adapters import LocationUniqueId + +from zope.app.traversing.interfaces import IPhysicallyLocatable +from zope.app.location.traversing import LocationPhysicallyLocatable + + +def setUp(test): + placelesssetup.setUp() + service = zapi.getGlobalService('Utilities') + service.provideUtility(IDocumentationModule, InterfaceModule(), '') + service.provideUtility(IDocumentationModule, ClassModule(), 'Classes') + + ztapi.provideAdapter(None, IUniqueId, LocationUniqueId) + ztapi.provideAdapter(None, IPhysicallyLocatable, + LocationPhysicallyLocatable) + + +def makeRegistration(name, interface, component): + return type('RegistrationStub', (), + {'name': name, 'provided': interface, + 'component': component, 'doc': ''})() + +def getDetailsView(): + utils = UtilityModule() + utils.__parent__ = Root + utils.__name__ = 'Utility' + util = Utility( + utils, + makeRegistration('Classes', IDocumentationModule, ClassModule())) + details = UtilityDetails() + details.context = util + details.request = TestRequest() + return details + +def test_suite(): + return unittest.TestSuite(( + DocTestSuite('zope.app.apidoc.utilitymodule', + setUp=setUp, tearDown=placelesssetup.tearDown), + DocTestSuite('zope.app.apidoc.utilitymodule.browser', + setUp=setUp, tearDown=placelesssetup.tearDown), + )) + +if __name__ == '__main__': + unittest.main() diff --git a/viewmodule/tests.py b/viewmodule/tests.py index aaa73845..9f342bf3 100644 --- a/viewmodule/tests.py +++ b/viewmodule/tests.py @@ -34,7 +34,7 @@ class IFoo(Interface): class FooView(object): pass -def setUp(): +def setUp(test): placelesssetup.setUp() ztapi.provideAdapter(ISkinRegistration, ISkinDocumentation, @@ -55,18 +55,13 @@ def setUp(): provideInterface('IBrowserRequest', IBrowserRequest) ztapi.browserView(IFoo, 'index.html', FooView, layer='default') - - -def tearDown(): - placelesssetup.tearDown() - def test_suite(): return unittest.TestSuite(( DocTestSuite('zope.app.apidoc.viewmodule', - setUp=setUp, tearDown=tearDown), + setUp=setUp, tearDown=placelesssetup.tearDown), DocTestSuite('zope.app.apidoc.viewmodule.browser', - setUp=setUp, tearDown=tearDown), + setUp=setUp, tearDown=placelesssetup.tearDown), )) if __name__ == '__main__': diff --git a/zcmlmodule/tests.py b/zcmlmodule/tests.py index 0bb2de4f..b8ee8007 100644 --- a/zcmlmodule/tests.py +++ b/zcmlmodule/tests.py @@ -32,7 +32,7 @@ from zope.app.apidoc.tests import Root -def setUp(): +def setUp(test): placelesssetup.setUp() ztapi.provideAdapter(None, IUniqueId, LocationUniqueId) @@ -45,7 +45,7 @@ def setUp(): zope.app.appsetup.appsetup.__config_source = os.path.join( os.path.dirname(zope.app.__file__), 'meta.zcml') -def tearDown(): +def tearDown(test): placelesssetup.tearDown() zope.app.appsetup.appsetup.__config_source = old_source_file