def test_sync_related_tasks_performs_a_request_for_each_successor(self): predecessor = create(Builder('task').in_state('task-state-resolved')) create(Builder('task').successor_from(predecessor)) create(Builder('task').successor_from(predecessor)) sender = BaseResponseSyncerSender(predecessor, self.request) sender.TARGET_SYNC_VIEW_NAME = "SYNC_TASK" mock_request = self._mock_dispatch_request(sender, 'OK') sender.sync_related_tasks('test-transition', u't\xe4st') self.assertEqual( 2, len(mock_request.requests), "The syncer should have made two requests. One for each successor") self.assertItemsEqual([{ 'data': { 'text': 't\xc3\xa4st', 'transition': 'test-transition' }, 'path': u'task-2', 'target_admin_unit_id': u'client1', 'viewname': 'SYNC_TASK' }, { 'data': { 'text': 't\xc3\xa4st', 'transition': 'test-transition' }, 'path': u'task-3', 'target_admin_unit_id': u'client1', 'viewname': 'SYNC_TASK' }], mock_request.requests)
def test_sync_related_tasks_performs_a_request_for_each_successor(self): predecessor = create(Builder('task').in_state('task-state-resolved')) create(Builder('task').successor_from(predecessor)) create(Builder('task').successor_from(predecessor)) sender = BaseResponseSyncerSender(predecessor, self.request) sender.TARGET_SYNC_VIEW_NAME = "SYNC_TASK" mock_request = self._mock_dispatch_request(sender, 'OK') sender.sync_related_tasks('test-transition', u't\xe4st') self.assertEqual( 2, len(mock_request.requests), "The syncer should have made two requests. One for each successor") self.assertItemsEqual( [ {'data': {'text': 't\xc3\xa4st', 'transition': 'test-transition'}, 'path': u'task-2', 'target_admin_unit_id': u'admin-unit-1', 'viewname': 'SYNC_TASK'}, {'data': {'text': 't\xc3\xa4st', 'transition': 'test-transition'}, 'path': u'task-3', 'target_admin_unit_id': u'admin-unit-1', 'viewname': 'SYNC_TASK'} ], mock_request.requests )
def test_get_related_tasks_to_sync_returns_empty_list_if_there_are_no_successors_or_predecessors( self): predecessor = create(Builder('task').in_state('task-state-resolved')) sender = BaseResponseSyncerSender(predecessor, self.request) self.assertEqual([], sender.get_related_tasks_to_sync())
def test_get_related_tasks_to_sync_returns_predecessor_in_a_list(self): predecessor = create(Builder('task').in_state('task-state-resolved')) successor_1 = create(Builder('task').successor_from(predecessor)) sender = BaseResponseSyncerSender(successor_1, self.request) tasks = sender.get_related_tasks_to_sync() self.assertEqual([predecessor.get_sql_object()], tasks)
def test_get_related_tasks_to_sync_returns_predecessor_in_a_list(self): predecessor = create(Builder('task').in_state('task-state-resolved')) successor_1 = create(Builder('task').successor_from(predecessor)) sender = BaseResponseSyncerSender(successor_1, self.request) tasks = sender.get_related_tasks_to_sync() self.assertEqual([predecessor.get_sql_object()], tasks)
def test_sync_related_tasks_raises_an_exception_if_syncing_failed(self): predecessor = create(Builder('task').in_state('task-state-resolved')) create(Builder('task').successor_from(predecessor)) sender = BaseResponseSyncerSender(predecessor, self.request) sender.TARGET_SYNC_VIEW_NAME = "NOT_EXISTING_VIEW" self._mock_dispatch_request(sender, 'NOT_FOUND') with self.assertRaises(ResponseSyncerSenderException): sender.sync_related_tasks('', '')
def test_sync_related_tasks_raises_an_exception_if_syncing_failed(self): predecessor = create(Builder('task').in_state('task-state-resolved')) create(Builder('task').successor_from(predecessor)) sender = BaseResponseSyncerSender(predecessor, self.request) sender.TARGET_SYNC_VIEW_NAME = "NOT_EXISTING_VIEW" self._mock_dispatch_request(sender, 'NOT_FOUND') with self.assertRaises(ResponseSyncerSenderException): sender.sync_related_tasks('', '')
def test_extend_payload_updates_payload_with_kwargs(self): sender = BaseResponseSyncerSender(object(), self.request) payload = {'text': 'My text'} sender.extend_payload(payload, object(), firstname="james", lastname="bond") self.assertEqual({ 'text': 'My text', 'firstname': 'james', 'lastname': 'bond'}, payload)
def test_extend_payload_updates_payload_with_kwargs(self): sender = BaseResponseSyncerSender(object(), self.request) payload = {'text': 'My text'} sender.extend_payload(payload, object(), firstname="james", lastname="bond") self.assertEqual( { 'text': 'My text', 'firstname': 'james', 'lastname': 'bond' }, payload)
def test_sync_related_task_performs_a_request_to_the_target_sync_view_name( self): predecessor = create(Builder('task').in_state('task-state-resolved')) create(Builder('task').successor_from(predecessor)) sender = BaseResponseSyncerSender(predecessor, self.request) sender.TARGET_SYNC_VIEW_NAME = "SYNC_TASK" mock_request = self._mock_dispatch_request(sender, 'OK') task = sender.get_related_tasks_to_sync()[0] sender.sync_related_task(task, 'test-transition', u't\xe4st', firstname='james') self.assertItemsEqual([ { 'data': { 'text': 't\xc3\xa4st', 'transition': 'test-transition', 'firstname': 'james' }, 'path': u'task-2', 'target_admin_unit_id': u'client1', 'viewname': 'SYNC_TASK' }, ], mock_request.requests)
def test_sync_related_task_performs_a_request_to_the_target_sync_view_name(self): predecessor = create(Builder('task').in_state('task-state-resolved')) create(Builder('task').successor_from(predecessor)) sender = BaseResponseSyncerSender(predecessor, self.request) sender.TARGET_SYNC_VIEW_NAME = "SYNC_TASK" mock_request = self._mock_dispatch_request(sender, 'OK') task = sender.get_related_tasks_to_sync()[0] sender.sync_related_task(task, 'test-transition', u't\xe4st', firstname='james') self.assertItemsEqual( [ {'data': {'text': 't\xc3\xa4st', 'transition': 'test-transition', 'firstname': 'james'}, 'path': u'task-2', 'target_admin_unit_id': u'admin-unit-1', 'viewname': 'SYNC_TASK'}, ], mock_request.requests )
def test_raise_sync_exception_raises_an_exception(self): sender = BaseResponseSyncerSender(object(), self.request) with self.assertRaises(ResponseSyncerSenderException): sender.raise_sync_exception(object(), '', '')
def test_raise_sync_exception_raises_an_exception(self): sender = BaseResponseSyncerSender(object(), self.request) with self.assertRaises(ResponseSyncerSenderException): sender.raise_sync_exception(object(), '', '')
def test_get_related_tasks_to_sync_returns_empty_list_if_there_are_no_successors_or_predecessors(self): predecessor = create(Builder('task').in_state('task-state-resolved')) sender = BaseResponseSyncerSender(predecessor, self.request) self.assertEqual([], sender.get_related_tasks_to_sync())