[Checkins] SVN: zope.proxy/trunk/ Add test for DSD providing both instances' interfaces and its own.

Tres Seaver cvs-admin at zope.org
Thu Jun 7 01:13:51 UTC 2012


Log message for revision 126638:
  Add test for DSD providing both instances' interfaces and its own.

Changed:
  _U  zope.proxy/trunk/
  U   zope.proxy/trunk/src/zope/proxy/tests/test_decorator.py

-=-
Modified: zope.proxy/trunk/src/zope/proxy/tests/test_decorator.py
===================================================================
--- zope.proxy/trunk/src/zope/proxy/tests/test_decorator.py	2012-06-06 21:24:32 UTC (rev 126637)
+++ zope.proxy/trunk/src/zope/proxy/tests/test_decorator.py	2012-06-07 01:13:46 UTC (rev 126638)
@@ -27,40 +27,79 @@
 
     def test___get___w_class(self):
         from zope.interface import Interface
+        from zope.interface import implementer
         from zope.interface import provider
-        class IFoo(Interface):
+        class IContextFactory(Interface):
             pass
-        @provider(IFoo)
-        class Foo(object):
+        class IContext(Interface):
             pass
+        @provider(IContextFactory)
+        @implementer(IContext)
+        class Context(object):
+            pass
         dsd = self._makeOne()
-        self.assertEqual(list(dsd.__get__(None, Foo)), [IFoo])
+        self.assertEqual(list(dsd.__get__(None, Context)), [IContextFactory])
 
     def test___get___w_inst_no_proxy(self):
         from zope.interface import Interface
         from zope.interface import implementer
-        class IFoo(Interface):
+        from zope.interface import provider
+        class IContextFactory(Interface):
             pass
-        @implementer(IFoo)
-        class Foo(object):
+        class IContext(Interface):
             pass
+        @provider(IContextFactory)
+        @implementer(IContext)
+        class Context(object):
+            pass
         dsd = self._makeOne()
-        self.assertEqual(list(dsd.__get__(Foo(), None)), [IFoo])
+        self.assertEqual(list(dsd.__get__(Context(), None)), [IContext])
 
     def test___get___w_inst_w_proxy(self):
         from zope.interface import Interface
         from zope.interface import implementer
+        from zope.interface import provider
         from zope.proxy import ProxyBase
-        class IFoo(Interface):
+        class IContextFactory(Interface):
             pass
-        @implementer(IFoo)
-        class Foo(object):
+        class IContext(Interface):
             pass
-        foo = Foo()
-        p_foo = ProxyBase(foo)
+        @provider(IContextFactory)
+        @implementer(IContext)
+        class Context(object):
+            pass
+        context = Context()
+        proxy = ProxyBase(context)
         dsd = self._makeOne()
-        self.assertEqual(list(dsd.__get__(p_foo, None)), [IFoo])
+        self.assertEqual(list(dsd.__get__(proxy, None)), [IContext])
 
+    def test___get___w_inst_w_derived_proxy(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.interface import provider
+        from zope.proxy import ProxyBase
+        class IContextFactory(Interface):
+            pass
+        class IContext(Interface):
+            pass
+        @provider(IContextFactory)
+        @implementer(IContext)
+        class Context(object):
+            pass
+        class IProxyFactory(Interface):
+            pass
+        class IProxy(Interface):
+            pass
+        @provider(IProxyFactory)
+        @implementer(IProxy)
+        class Proxy(ProxyBase):
+            pass
+        context = Context()
+        proxy = Proxy(context)
+        dsd = self._makeOne()
+        self.assertEqual(list(dsd.__get__(proxy, None)),
+                         [IContext, IProxy])
+
     def test___set___not_allowed(self):
         from zope.interface import Interface
         from zope.interface import implementer



More information about the checkins mailing list