From: Josh Durgin Date: Tue, 25 Nov 2014 01:21:43 +0000 (-0800) Subject: More tests for wait_for_object() X-Git-Tag: v1.2~5^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0965b689bed1c370c03c8db611046954423636ec;p=radosgw-agent.git More tests for wait_for_object() Signed-off-by: Josh Durgin --- diff --git a/radosgw_agent/tests/test_worker.py b/radosgw_agent/tests/test_worker.py index f8d599f..195bedf 100644 --- a/radosgw_agent/tests/test_worker.py +++ b/radosgw_agent/tests/test_worker.py @@ -136,3 +136,27 @@ class TestSyncObject(object): exc_message = exc.exconly() assert 'state not found' in exc_message + + def test_wait_for_object_timeout(self): + msg = 'should not have called get_op_state' + self.client.get_op_state = Mock(side_effect=AssertionError(msg)) + with patch('radosgw_agent.worker.client', self.client): + w = worker.DataWorker(None, None, None, self.src, None, daemon_id=1) + with py.test.raises(worker.SyncTimedOut) as exc: + w.wait_for_object(None, None, time.time() - 1, None) + + def test_wait_for_object_state_complete(self): + with patch('radosgw_agent.worker.client', self.client): + w = worker.DataWorker(None, None, None, self.src, None, daemon_id=1) + self.client.get_op_state = lambda *a: [{'state': 'complete'}] + assert w.wait_for_object(None, None, time.time() + 1, None) is None + + def test_wait_for_object_state_error(self): + with patch('radosgw_agent.worker.client', self.client): + w = worker.DataWorker(None, None, None, self.src, None, daemon_id=1) + self.client.get_op_state = lambda *a: [{'state': 'error'}] + with py.test.raises(worker.SyncFailed) as exc: + w.wait_for_object(None, None, time.time() + 1, None) + + exc_message = exc.exconly() + assert 'state is error' in exc_message