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()
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()
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()
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()
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()
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()
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()
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()