コード例 #1
0
ファイル: test_base.py プロジェクト: felipecruz/coopy
    def test_coopyproxy_unlocked(self):
        from coopy.base import CoopyProxy

        import os
        os.mkdir('wiki')

        class PassPublisher(object):
            def close(self):
                pass
            def receive(self, message):
                pass
            def receive_before(self, message):
                pass
            def receive_exception(self, message):
                pass

        proxy = CoopyProxy(Wiki(), [PassPublisher()])
        proxy.create_page('id', 'content', None)

        # we're checking that system remains unlocked after a method execution
        # thus raising a RuntimeError on a release()
        with pytest.raises(RuntimeError):
            proxy.lock.release()


        # mock testing
        proxy.lock = mock.MagicMock()
        proxy.create_page('id', 'content', None)
        proxy.lock.acquire.assert_called_with(1)
        proxy.lock.release.assert_called()

        proxy.unlocked_method()
        proxy.lock.acquire.assert_not_called()
        proxy.close()
コード例 #2
0
ファイル: test_base.py プロジェクト: felipecruz/coopy
    def test_coopyproxy_abort_exception(self):
        from coopy.base import CoopyProxy

        import os
        os.mkdir('wiki')

        class PassPublisher(object):
            def __init__(self):
                self.messages = []
            def close(self):
                pass
            def receive(self, message):
                self.messages.append(message)
            def receive_before(self, message):
                self.messages.append(message)
            def receive_exception(self, message):
                self.messages.append(message)


        publisher = PassPublisher()
        proxy = CoopyProxy(Wiki(), [publisher])

        with pytest.raises(Exception):
            proxy.check_abort_exception()

        self.assertEquals(1, len(publisher.messages))

        proxy.close()
コード例 #3
0
ファイル: test_base.py プロジェクト: felipecruz/coopy
    def test_coopyproxy_take_snapshot(self):
        from coopy.base import CoopyProxy

        import os
        os.mkdir('wiki')

        class PassPublisher(object):
            def close(self):
                pass
            def receive(self, message):
                pass
            def receive_before(self, message):
                pass
            def receive_exception(self, message):
                pass

        proxy = CoopyProxy(Wiki(), [PassPublisher()])

        # mock testing
        proxy.lock = mock.MagicMock()
        proxy.create_page('id', 'content', None)

        proxy.take_snapshot()

        proxy.lock.acquire.assert_called()
        proxy.lock.release.assert_called()
        proxy.close()
コード例 #4
0
ファイル: test_base.py プロジェクト: felipecruz/coopy
    def test_coopyproxy_start_slave(self):
        from coopy.base import CoopyProxy

        import os
        os.mkdir('wiki')

        class PassPublisher(object):
            def close(self):
                pass
            def receive(self):
                pass

        proxy = CoopyProxy(Wiki(), [PassPublisher()])

        args = ('localhost', 8012)

        self.assertRaises(Exception,
                          proxy.start_slave,
                          *args)
        proxy.close()
コード例 #5
0
ファイル: test_base.py プロジェクト: felipecruz/coopy
    def test_coopyproxy_init(self):
        from coopy.base import CoopyProxy

        import os
        os.mkdir('wiki')

        class PassPublisher(object):
            def close(self):
                pass
            def receive(self):
                pass

        proxy = CoopyProxy(Wiki(), [PassPublisher()])

        self.assertTrue(hasattr(proxy, 'obj'))
        self.assertTrue(hasattr(proxy, 'publisher'))
        self.assertTrue(hasattr(proxy, 'lock'))
        self.assertTrue(hasattr(proxy, 'take_snapshot'))
        self.assertTrue(hasattr(proxy, 'close'))
        self.assertTrue(hasattr(proxy, 'shutdown'))

        proxy.close()
コード例 #6
0
ファイル: test_base.py プロジェクト: felipecruz/coopy
    def test_coopyproxy__getattr__(self):
        from coopy.base import CoopyProxy

        import os
        os.mkdir('wiki')

        class PassPublisher(object):
            def close(self):
                pass
            def receive(self):
                pass

        wiki = Wiki()

        wiki.__dict__['_private'] = "private"
        wiki.__dict__['some_callable'] = lambda x: x

        proxy = CoopyProxy(wiki, [PassPublisher()])

        self.assertTrue(proxy._private == "private")
        self.assertTrue(callable(proxy.some_callable))

        proxy.close()
コード例 #7
0
ファイル: test_base.py プロジェクト: felipecruz/coopy
    def test_coopyproxy_start_snapshot_manager(self):
        from coopy.base import CoopyProxy
        import os
        os.mkdir('wiki')

        class PassPublisher(object):
            def close(self):
                pass
            def receive(self):
                pass

        proxy = CoopyProxy(Wiki(), [PassPublisher()])
        proxy.start_snapshot_manager(0)
        self.assertTrue(hasattr(proxy, 'snapshot_timer'))

        proxy.shutdown()
        proxy.close()
コード例 #8
0
ファイル: test_base.py プロジェクト: felipecruz/coopy
    def test_coopyproxy_start_master(self):
        from coopy.base import CoopyProxy
        import os
        os.mkdir('wiki')

        class PassPublisher(object):
            def close(self):
                pass
            def receive(self):
                pass

        proxy = CoopyProxy(Wiki(), [PassPublisher()])
        proxy.start_master()

        self.assertTrue(hasattr(proxy, 'server'))
        self.assertTrue(proxy.server in proxy.publisher.subscribers)
        proxy.shutdown()
        proxy.close()