[Checkins] SVN: zope.component/tseaver-test_cleanup/ 100% coverage for z.c.interface.

Tres Seaver cvs-admin at zope.org
Tue Jun 26 00:26:43 UTC 2012


Log message for revision 127081:
  100% coverage for z.c.interface.

Changed:
  _U  zope.component/tseaver-test_cleanup/
  U   zope.component/tseaver-test_cleanup/src/zope/component/interface.py
  U   zope.component/tseaver-test_cleanup/src/zope/component/tests/test_interface.py

-=-
Modified: zope.component/tseaver-test_cleanup/src/zope/component/interface.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/interface.py	2012-06-26 00:09:55 UTC (rev 127080)
+++ zope.component/tseaver-test_cleanup/src/zope/component/interface.py	2012-06-26 00:26:40 UTC (rev 127081)
@@ -84,7 +84,7 @@
                                find(search_string) >= 0)]
     if base:
         res = [iface_util for iface_util in iface_utilities
-               if iface_util[1].extends(base)]
+               if iface_util[1].isOrExtends(base)]
     else:
         res = [iface_util for iface_util in iface_utilities]
     return res
@@ -112,6 +112,8 @@
 def interfaceToName(context, interface):
     if interface is None:
         return 'None'
+    # XXX this search is pointless:  we are always going to return the
+    #     same value whether or not we find anything.
     items = searchInterface(context, base=interface)
     ids = [('%s.%s' %(iface.__module__, iface.__name__))
            for iface in items

Modified: zope.component/tseaver-test_cleanup/src/zope/component/tests/test_interface.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/tests/test_interface.py	2012-06-26 00:09:55 UTC (rev 127080)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test_interface.py	2012-06-26 00:26:40 UTC (rev 127081)
@@ -18,37 +18,368 @@
 
 class Test_provideInterface(unittest.TestCase):
 
+    from zope.component.testing import setUp, tearDown
+
     def _callFUT(self, *args, **kw):
         from zope.component.interface import provideInterface
         return provideInterface(*args, **kw)
 
+    def test_w_interface_not_IInterface(self):
+        self.assertRaises(TypeError, self._callFUT, 'xxx', object())
 
+    def test_w_iface_type_not_IInterface(self):
+        from zope.interface import Interface
+        from zope.interface.interface import InterfaceClass
+        class IFoo(Interface):
+            pass
+        IBar = InterfaceClass('IBar')
+        self.assertRaises(TypeError, self._callFUT, 'xxx', IFoo, IBar)
+
+    def test_wo_name_w_iface_type(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        class IBar(IInterface):
+            pass
+        self._callFUT('', IFoo, IBar)
+        self.assertTrue(IBar.providedBy(IFoo))
+        nm = 'zope.component.tests.test_interface.IFoo'
+        self.assertTrue(gsm.getUtility(IBar, nm) is IFoo)
+
+    def test_w_name_wo_ifact_type(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        self._callFUT('foo', IFoo)
+        self.assertTrue(IInterface.providedBy(IFoo))
+        registered = gsm.getUtility(IInterface, name='foo')
+        self.assertTrue(registered is IFoo)
+
+
 class Test_getInterface(unittest.TestCase):
 
+    from zope.component.testing import setUp, tearDown
+
     def _callFUT(self, *args, **kw):
         from zope.component.interface import getInterface
         return getInterface(*args, **kw)
 
+    def test_miss(self):
+        from zope.component.interfaces import ComponentLookupError
+        self.assertRaises(ComponentLookupError,
+                          self._callFUT, object(), 'nonesuch')
 
+    def test_hit(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        self.assertTrue(self._callFUT(object(), 'foo') is IFoo)
+
+
 class Test_queryInterface(unittest.TestCase):
 
+    from zope.component.testing import setUp, tearDown
+
     def _callFUT(self, *args, **kw):
         from zope.component.interface import queryInterface
         return queryInterface(*args, **kw)
 
+    def test_miss(self):
+        _DEFAULT = object()
+        self.assertTrue(
+            self._callFUT('nonesuch', default=_DEFAULT) is _DEFAULT)
 
+    def test_hit(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        self.assertTrue(self._callFUT('foo') is IFoo)
+
+
 class Test_searchInterface(unittest.TestCase):
 
+    from zope.component.testing import setUp, tearDown
+
     def _callFUT(self, *args, **kw):
         from zope.component.interface import searchInterface
         return searchInterface(*args, **kw)
 
+    def test_empty(self):
+        self.assertEqual(self._callFUT(object()), [])
 
+    def test_no_search_string_no_base(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        self.assertEqual(self._callFUT(object()), [IFoo])
+
+    def test_w_search_string_no_base(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        gsm.registerUtility(IBar, IInterface, 'bar')
+        self.assertEqual(self._callFUT(object(), 'IFoo'), [IFoo])
+
+    def test_no_search_string_w_base(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IBase(Interface):
+            pass
+        class IFoo(IBase):
+            pass
+        class IBar(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        gsm.registerUtility(IBar, IInterface, 'bar')
+        self.assertEqual(self._callFUT(object(), base=IBase), [IFoo])
+
+
+class Test_searchInterfaceIds(unittest.TestCase):
+
+    from zope.component.testing import setUp, tearDown
+
+    def _callFUT(self, *args, **kw):
+        from zope.component.interface import searchInterfaceIds
+        return searchInterfaceIds(*args, **kw)
+
+    def test_empty(self):
+        self.assertEqual(self._callFUT(object()), [])
+
+    def test_no_search_string_no_base(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        self.assertEqual(self._callFUT(object()), ['foo'])
+
+    def test_w_search_string_no_base(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        gsm.registerUtility(IBar, IInterface, 'bar')
+        self.assertEqual(self._callFUT(object(), 'IFoo'), ['foo'])
+
+    def test_no_search_string_w_base(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IBase(Interface):
+            pass
+        class IFoo(IBase):
+            pass
+        class IBar(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        gsm.registerUtility(IBar, IInterface, 'bar')
+        self.assertEqual(self._callFUT(object(), base=IBase), ['foo'])
+
+
+class Test_searchInterfaceUtilities(unittest.TestCase):
+
+    from zope.component.testing import setUp, tearDown
+
+    def _callFUT(self, *args, **kw):
+        from zope.component.interface import searchInterfaceUtilities
+        return searchInterfaceUtilities(*args, **kw)
+
+    def test_empty(self):
+        self.assertEqual(self._callFUT(object()), [])
+
+    def test_no_search_string_no_base(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        self.assertEqual(self._callFUT(object()), [('foo', IFoo)])
+
+    def test_w_search_string_no_base(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        gsm.registerUtility(IBar, IInterface, 'bar')
+        self.assertEqual(self._callFUT(object(), 'IFoo'), [('foo', IFoo)])
+
+    def test_no_search_string_w_base(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IBase(Interface):
+            pass
+        class IFoo(IBase):
+            pass
+        class IBar(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        gsm.registerUtility(IBar, IInterface, 'bar')
+        self.assertEqual(self._callFUT(object(), base=IBase), [('foo', IFoo)])
+
+    def test_no_search_string_w_base_is_same(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        gsm.registerUtility(IBar, IInterface, 'bar')
+        self.assertEqual(self._callFUT(object(), base=IFoo), [('foo', IFoo)])
+
+
+class Test_getInterfaceAllDocs(unittest.TestCase):
+
+    def _callFUT(self, *args, **kw):
+        from zope.component.interface import getInterfaceAllDocs
+        return getInterfaceAllDocs(*args, **kw)
+
+    def test_w_class(self):
+        class Foo(object):
+            """DOCSTRING"""
+            bar = None
+            def baz(self):
+                """BAZ"""
+        self.assertEqual(self._callFUT(Foo),
+                         'zope.component.tests.test_interface.foo\n' + 
+                         'docstring')
+
+    def test_w_interface_no_members(self):
+        from zope.interface import Interface
+        class IFoo(Interface):
+            """DOCSTRING"""
+        self.assertEqual(self._callFUT(IFoo),
+                         'zope.component.tests.test_interface.ifoo\n' + 
+                         'docstring')
+
+    def test_w_interface_w_members(self):
+        from zope.interface import Attribute
+        from zope.interface import Interface
+        class IFoo(Interface):
+            """DOCSTRING"""
+            bar = Attribute('bar', 'Do bar')
+            def baz(self):
+                """BAZ"""
+        self.assertEqual(self._callFUT(IFoo),
+                         'zope.component.tests.test_interface.ifoo\n' +
+                         'docstring\n' + 
+                         'do bar\n' +
+                         'baz')
+
+
+class Test_nameToInterface(unittest.TestCase):
+
+    from zope.component.testing import setUp, tearDown
+
+    def _callFUT(self, *args, **kw):
+        from zope.component.interface import nameToInterface
+        return nameToInterface(*args, **kw)
+
+    def test_w_None(self):
+        self.assertTrue(self._callFUT(object(), 'None') is None)
+
+    def test_miss(self):
+        from zope.component.interfaces import ComponentLookupError
+        self.assertRaises(ComponentLookupError,
+                          self._callFUT, object(), 'nonesuch')
+
+    def test_hit(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        found = self._callFUT(object(), 'foo')
+        self.assertTrue(found is IFoo)
+
+
+class Test_interfaceToName(unittest.TestCase):
+
+    from zope.component.testing import setUp, tearDown
+
+    def _callFUT(self, *args, **kw):
+        from zope.component.interface import interfaceToName
+        return interfaceToName(*args, **kw)
+
+    def test_w_None(self):
+        self.assertEqual(self._callFUT(object(), None), 'None')
+
+    def test_w_unregistered(self):
+        from zope.interface import Interface
+        class IFoo(Interface):
+            pass
+        self.assertEqual(self._callFUT(object(), IFoo),
+                         'zope.component.tests.test_interface.IFoo')
+
+    def test_w_registered(self):
+        from zope.interface import Interface
+        from zope.interface.interfaces import IInterface
+        from zope.component.globalregistry import getGlobalSiteManager
+        gsm = getGlobalSiteManager()
+        class IFoo(Interface):
+            pass
+        gsm.registerUtility(IFoo, IInterface, 'foo')
+        self.assertEqual(self._callFUT(object(), IFoo),
+                         'zope.component.tests.test_interface.IFoo')
+
+
 def test_suite():
     return unittest.TestSuite((
         unittest.makeSuite(Test_provideInterface),
         unittest.makeSuite(Test_getInterface),
         unittest.makeSuite(Test_queryInterface),
         unittest.makeSuite(Test_searchInterface),
+        unittest.makeSuite(Test_searchInterfaceIds),
+        unittest.makeSuite(Test_searchInterfaceUtilities),
+        unittest.makeSuite(Test_getInterfaceAllDocs),
+        unittest.makeSuite(Test_nameToInterface),
+        unittest.makeSuite(Test_interfaceToName),
     ))
 



More information about the checkins mailing list