def test_w_nested_proxies(self):
        from zope.proxy import ProxyBase

        class C(object):
            pass

        c = C()
        proxy = ProxyBase(c)
        proxy2 = ProxyBase(proxy)
        proxy3 = ProxyBase(proxy2)
        proxy4 = ProxyBase(proxy3)
        self.assertEqual(list(self._callFUT(proxy4)),
                         [proxy4, proxy3, proxy2, proxy, c])
Пример #2
0
    def __init__(self, opts, *args, **kwargs):
        """
        Initialize the connection pool.
        """
        self.opts = opts
        try:
            adbapi.ConnectionPool.__init__(self, *args, **kwargs)
        except dbapi2.DatabaseError as e:
            raise DatabaseAccessError(
                'Error initializing u1db connection pool: %s' % str(e))

        # all u1db connections, hashed by thread-id
        self._u1dbconnections = {}

        # The replica uid, primed by the connections on init.
        self.replica_uid = ProxyBase(None)

        try:
            conn = self.connectionFactory(
                self, init_u1db=True)
            replica_uid = conn._u1db._real_replica_uid
            setProxiedObject(self.replica_uid, replica_uid)
        except DatabaseAccessError as e:
            self.threadpool.stop()
            raise DatabaseAccessError(
                "Error initializing connection factory: %s" % str(e))
Пример #3
0
    def test_has_usable_external_object_proxied(self):

        obj = WithToExternalObject()
        proxied = ProxyBase(obj)

        self.assertTrue(_obj_has_usable_externalObject(proxied))
        self.assertEqual({'a': 42}, to_external_object(proxied))
    def test_it(self):
        from zope.proxy import ProxyBase
        from zope.proxy import non_overridable

        class Proxy(ProxyBase):
            def who(self):
                raise AssertionError("Not called")

            @non_overridable
            def what(self):
                return 'PROXY'

        class Foo(object):
            def who(self):
                return 'FOO'

            def what(self):
                return 'FOO'

        p0 = ProxyBase(Foo())
        self.assertEqual(p0.who(), 'FOO')
        self.assertEqual(p0.what(), 'FOO')
        proxy = Proxy(Foo())
        self.assertEqual(proxy.who(), 'FOO')
        self.assertEqual(proxy.what(), 'PROXY')
    def test_w_simple_proxy(self):
        from zope.proxy import ProxyBase

        class C(object):
            pass

        c = C()
        proxy = ProxyBase(c)
        self.assertEqual(list(self._callFUT(proxy)), [proxy, c])
Пример #6
0
    def test_serialize_on_adaptable(self):
        from jsonpublish.encoder import JSONEncoder
        encoder = JSONEncoder()
        from zope.proxy import ProxyBase
        from datetime import date
        o = date(1987, 5, 8)
        p = ProxyBase(o)

        def adapt_date(d):
            return d.strftime("%Y-%m-%d")

        encoder.adapters.register_adapter(date, adapt_date)
        self.assertEqual(encoder.encode(p), '"1987-05-08"')
Пример #7
0
    def __init__(self, *args, **kwargs):
        """
        Initialize the connection pool.
        """
        adbapi.ConnectionPool.__init__(self, *args, **kwargs)
        # all u1db connections, hashed by thread-id
        self._u1dbconnections = {}

        # The replica uid, primed by the connections on init.
        self.replica_uid = ProxyBase(None)

        conn = self.connectionFactory(self, init_u1db=True)
        replica_uid = conn._u1db._real_replica_uid
        setProxiedObject(self.replica_uid, replica_uid)
    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 IContextFactory(Interface):
            pass

        class IContext(Interface):
            pass

        @provider(IContextFactory)
        @implementer(IContext)
        class Context(object):
            pass

        context = Context()
        proxy = ProxyBase(context)
        dsd = self._makeOne()
        self.assertEqual(list(dsd.__get__(proxy, None)), [IContext])
Пример #9
0
    def __init__(self, *args, **kwargs):
        """
        Initialize the connection pool.
        """
        # extract soledad-specific objects from keyword arguments
        self.opts = kwargs.pop("opts")
        self._sync_enc_pool = kwargs.pop("sync_enc_pool")
        try:
            adbapi.ConnectionPool.__init__(self, *args, **kwargs)
        except DatabaseError:
            raise DatabaseAccessError('Could not open sqlcipher database')

        # all u1db connections, hashed by thread-id
        self._u1dbconnections = {}

        # The replica uid, primed by the connections on init.
        self.replica_uid = ProxyBase(None)

        conn = self.connectionFactory(self,
                                      self._sync_enc_pool,
                                      init_u1db=True)
        replica_uid = conn._u1db._real_replica_uid
        setProxiedObject(self.replica_uid, replica_uid)
Пример #10
0
 def test_serialize_proxy(self):
     from jsonpublish.encoder import JSONEncoder
     encoder = JSONEncoder()
     from zope.proxy import ProxyBase
     p = ProxyBase(1)
     self.assertEqual(encoder.encode(p), '1')
 def _makeProxy(self, obj):
     from zope.proxy import ProxyBase
     return ProxyBase(obj)