Beispiel #1
0
    def test_get_connection_during_result_unpickling(self):
        with make_connection() as conn:

            def on_unpickle():
                self.assertIs(across.get_connection(), conn)

            with self.assertRaises(ValueError):
                across.get_connection()
            conn.call(Box(lambda: PickleObserver(on_unpickle=on_unpickle)))
            with self.assertRaises(ValueError):
                across.get_connection()
Beispiel #2
0
    def test_get_connection_during_call_pickling(self):
        with make_connection() as conn:

            def on_pickle():
                self.assertIs(across.get_connection(), conn)

            with self.assertRaises(ValueError):
                across.get_connection()
            conn.call(nop, PickleObserver(on_pickle=on_pickle))
            with self.assertRaises(ValueError):
                across.get_connection()
Beispiel #3
0
    def test_get_connection_during_call_unpickling(self):
        with make_connection() as conn:

            def on_unpickle():
                remote_conn = across.get_connection()
                self.assertIsInstance(remote_conn, across.Connection)
                self.assertIsNot(remote_conn, conn)

            with self.assertRaises(ValueError):
                across.get_connection()
            conn.call(nop, PickleObserver(on_unpickle=on_unpickle))
            with self.assertRaises(ValueError):
                across.get_connection()
Beispiel #4
0
    def test_get_connection_during_invocation(self):
        with make_connection() as conn:

            def invoke():
                remote_conn = across.get_connection()
                self.assertIsInstance(remote_conn, across.Connection)
                self.assertIsNot(remote_conn, conn)

            with self.assertRaises(ValueError):
                across.get_connection()
            conn.call(Box(invoke))
            with self.assertRaises(ValueError):
                across.get_connection()
Beispiel #5
0
    def test_get_connection_during_error_unpickling(self):
        with make_connection() as conn:

            def on_unpickle():
                self.assertIs(across.get_connection(), conn)

            def func():
                raise ArithmeticError(PickleObserver(on_unpickle=on_unpickle))

            with self.assertRaises(ValueError):
                across.get_connection()
            with self.assertRaises(ArithmeticError):
                conn.call(Box(func))
            with self.assertRaises(ValueError):
                across.get_connection()
Beispiel #6
0
    def test_get_connection_during_result_pickling(self):
        remote_conn = Box()

        def on_pickle():
            self.assertIs(across.get_connection(), remote_conn.value)

        def func():
            remote_conn.value = across.get_connection()
            return PickleObserver(on_pickle=on_pickle)

        with make_connection() as conn:
            with self.assertRaises(ValueError):
                across.get_connection()
            conn.call(Box(func))
            with self.assertRaises(ValueError):
                across.get_connection()
Beispiel #7
0
def _setup_remote_logging():
    _remote_conn.value = across.get_connection()
    handler = AcrossHandler()
    handler.addFilter(_RemoteSideFilter())
    handler.setLevel(logging.INFO)
    _logger.addHandler(handler)
    _remote_handler.value = handler
Beispiel #8
0
 def func():
     remote_conn.value = across.get_connection()
     raise ArithmeticError(PickleObserver(on_pickle=on_pickle))
Beispiel #9
0
 def on_pickle():
     self.assertIs(across.get_connection(), remote_conn.value)
Beispiel #10
0
 def on_unpickle():
     self.assertIs(across.get_connection(), conn)
Beispiel #11
0
 def func():
     remote_conn.value = across.get_connection()
     return PickleObserver(on_pickle=on_pickle)
Beispiel #12
0
 def invoke_nested():
     self.assertIs(across.get_connection(), conn)
Beispiel #13
0
 def invoke():
     remote_conn = across.get_connection()
     self.assertIsInstance(remote_conn, across.Connection)
     self.assertIsNot(remote_conn, conn)
     remote_conn.call(Box(invoke_nested))
     self.assertIs(across.get_connection(), remote_conn)
Beispiel #14
0
 def invoke():
     remote_conn = across.get_connection()
     self.assertIsInstance(remote_conn, across.Connection)
     self.assertIsNot(remote_conn, conn)
Beispiel #15
0
 def filter(self, record):
     try:
         conn = across.get_connection()
     except ValueError:
         conn = None
     return (conn == _remote_conn.value) != self._negate
Beispiel #16
0
 def on_unpickle():
     remote_conn = across.get_connection()
     self.assertIsInstance(remote_conn, across.Connection)
     self.assertIsNot(remote_conn, conn)
Beispiel #17
0
 def factorial(n):
     return 1 if n == 0 else n * across.get_connection().call(
         factorial, n - 1)