def test_classImplements(self):
        class A(Odd):
            implements(I3)

        class B(Odd):
            implements(I4)

        class C(A, B):
            pass

        classImplements(C, I1, I2)
        self.assertEqual([i.getName() for i in implementedBy(C)], ["I1", "I2", "I3", "I4"])
        classImplements(C, I5)
        self.assertEqual([i.getName() for i in implementedBy(C)], ["I1", "I2", "I5", "I3", "I4"])
    def test_builtins(self):
        # Setup

        intspec = implementedBy(int)
        olddeclared = intspec.declared

        classImplements(int, I1)
        class myint(int):
            implements(I2)

        x = 42
        self.assertEqual([i.getName() for i in providedBy(x)],
                         ['I1'])

        x = myint(42)
        directlyProvides(x, I3)
        self.assertEqual([i.getName() for i in providedBy(x)],
                         ['I3', 'I2', 'I1'])

        # cleanup
        intspec.declared = olddeclared
        classImplements(int)

        x = 42
        self.assertEqual([i.getName() for i in providedBy(x)],
                         [])
    def test_builtins(self):
        # Setup

        intspec = implementedBy(int)
        olddeclared = intspec.declared

        classImplements(int, I1)

        class myint(int):
            implements(I2)

        x = 42
        self.assertEqual([i.getName() for i in providedBy(x)], ['I1'])

        x = myint(42)
        directlyProvides(x, I3)
        self.assertEqual([i.getName() for i in providedBy(x)],
                         ['I3', 'I2', 'I1'])

        # cleanup
        intspec.declared = olddeclared
        classImplements(int)

        x = 42
        self.assertEqual([i.getName() for i in providedBy(x)], [])
Beispiel #4
0
class Client(tcp.Client):
    """I am an SSL client."""

    implementsOnly(
        interfaces.ISSLTransport, *[
            i for i in implementedBy(tcp.Client)
            if i != interfaces.ITLSTransport
        ])

    def __init__(self,
                 host,
                 port,
                 bindAddress,
                 ctxFactory,
                 connector,
                 reactor=None):
        # tcp.Client.__init__ depends on self.ctxFactory being set
        self.ctxFactory = ctxFactory
        tcp.Client.__init__(self, host, port, bindAddress, connector, reactor)

    def getHost(self):
        """Returns the address from which I am connecting."""
        h, p = self.socket.getsockname()
        return address.IPv4Address('TCP', h, p, 'SSL')

    def getPeer(self):
        """Returns the address that I am connected."""
        return address.IPv4Address('TCP', self.addr[0], self.addr[1], 'SSL')

    def _connectDone(self):
        self.startTLS(self.ctxFactory)
        self.startWriting()
        tcp.Client._connectDone(self)
Beispiel #5
0
    def test_classImplements(self):
        class A(Odd):
            implements(I3)

        class B(Odd):
            implements(I4)

        class C(A, B):
            pass

        classImplements(C, I1, I2)
        self.assertEqual([i.getName() for i in implementedBy(C)],
                         ['I1', 'I2', 'I3', 'I4'])
        classImplements(C, I5)
        self.assertEqual([i.getName() for i in implementedBy(C)],
                         ['I1', 'I2', 'I5', 'I3', 'I4'])
    def testUtil(self):
        from reqs.zope.interface import implementedBy
        from reqs.zope.interface import providedBy
        from reqs.zope.interface.tests.unitfixtures import A
        from reqs.zope.interface.tests.unitfixtures import B
        from reqs.zope.interface.tests.unitfixtures import C
        from reqs.zope.interface.tests.unitfixtures import I1
        from reqs.zope.interface.tests.unitfixtures import I2
        from reqs.zope.interface.tests.unitfixtures import IC
        self.assert_(IC in implementedBy(C))
        self.assert_(I1 in implementedBy(A))
        self.assert_(not I1 in implementedBy(C))
        self.assert_(I2 in implementedBy(B))
        self.assert_(not I2 in implementedBy(C))

        self.assert_(IC in providedBy(C()))
        self.assert_(I1 in providedBy(A()))
        self.assert_(not I1 in providedBy(C()))
        self.assert_(I2 in providedBy(B()))
        self.assert_(not I2 in providedBy(C()))
Beispiel #7
0
    def testUtil(self):
        from reqs.zope.interface import implementedBy
        from reqs.zope.interface import providedBy
        from reqs.zope.interface.tests.unitfixtures import A
        from reqs.zope.interface.tests.unitfixtures import B
        from reqs.zope.interface.tests.unitfixtures import C
        from reqs.zope.interface.tests.unitfixtures import I1
        from reqs.zope.interface.tests.unitfixtures import I2
        from reqs.zope.interface.tests.unitfixtures import IC
        self.assert_(IC in implementedBy(C))
        self.assert_(I1 in implementedBy(A))
        self.assert_(not I1 in implementedBy(C))
        self.assert_(I2 in implementedBy(B))
        self.assert_(not I2 in implementedBy(C))

        self.assert_(IC in providedBy(C()))
        self.assert_(I1 in providedBy(A()))
        self.assert_(not I1 in providedBy(C()))
        self.assert_(I2 in providedBy(B()))
        self.assert_(not I2 in providedBy(C()))
Beispiel #8
0
    def test_classImplementsOnly(self):
        class A(Odd):
            implements(I3)

        class B(Odd):
            implements(I4)

        class C(A, B):
            pass

        classImplementsOnly(C, I1, I2)
        self.assertEqual([i.__name__ for i in implementedBy(C)], ['I1', 'I2'])
    def test_classImplementsOnly(self):
        class A(Odd):
            implements(I3)

        class B(Odd):
            implements(I4)

        class C(A, B):
            pass

        classImplementsOnly(C, I1, I2)
        self.assertEqual([i.__name__ for i in implementedBy(C)], ["I1", "I2"])
Beispiel #10
0
class ConnectedDatagramPort(DatagramPort):
    """
    A connected datagram UNIX socket.
    """

    implementsOnly(interfaces.IUNIXDatagramConnectedTransport,
                   *(implementedBy(base.BasePort)))

    def __init__(self,
                 addr,
                 proto,
                 maxPacketSize=8192,
                 mode=0666,
                 bindAddress=None,
                 reactor=None):
    def test_implementedBy(self):
        class I2(I1):
            pass

        class C1(Odd):
            pass

        classImplements(C1, I2)

        class C2(C1):
            pass

        classImplements(C2, I3)

        self.assertEqual([i.getName() for i in implementedBy(C2)], ["I3", "I2"])
Beispiel #12
0
    def test_implementedBy(self):
        class I2(I1):
            pass

        class C1(Odd):
            pass

        classImplements(C1, I2)

        class C2(C1):
            pass

        classImplements(C2, I3)

        self.assertEqual([i.getName() for i in implementedBy(C2)],
                         ['I3', 'I2'])