def setup_task_for_delete(mock_client): mock_client.access_token().tasks.find_by_id.return_value = task() mock_client.access_token().attachments.find_by_task.return_value = [ attachment() ] mock_client.access_token( ).attachments.find_by_id.return_value = attachment() mock_client.access_token().stories.find_by_task.return_value = [ story() ] mock_client.access_token().stories.find_by_id.return_value = story()
def test_good_sync(self): self.command.client.attachments.find_by_task.return_value = [attachment()] self.command.client.attachments.find_by_id.return_value = attachment() self.command.client.stories.find_by_task.return_value = [story()] self.command.client.stories.find_by_id.return_value = story() self.command.handle(interactive=False, verbosity=2) self.assertEqual(1, Workspace.objects.count()) self.assertEqual(1, Project.objects.count()) self.assertEqual(1, Task.objects.count()) self.assertEqual(1, User.objects.count()) self.assertEqual(1, Attachment.objects.count()) self.assertEqual(1, Story.objects.count())
def test_sync_events(self): workspace_ = Workspace.objects.create(remote_id=1, name="New Workspace") team_ = Team.objects.create(remote_id=2, name="New Team") project_ = Project.objects.create( remote_id=1, name="New Project", public=True, team=team_, workspace=workspace_, ) SyncToken.objects.create(sync="foo", project=project_) data = { "data": [ { "action": "changed", "created_at": "2017-08-21T18:20:37.972Z", "parent": None, "resource": { "gid": "1", "name": "Test Project" }, "type": "project", "user": "******", }, { "action": "changed", "created_at": "2017-08-21T18:20:37.972Z", "parent": None, "resource": { "gid": "1337", "name": "Test Task" }, "type": "task", "user": "******", }, { "action": "added", "created_at": "2017-08-21T18:20:37.972Z", "parent": None, "resource": { "gid": "1", "name": "Test Story" }, "type": "story", "user": "******", }, ] } self.command.client.events.get.return_value = data self.command.client.projects.find_by_id.return_value = project() self.command.client.tasks.find_by_id.side_effect = task self.command.client.stories.find_by_id.return_value = story() self.command.handle(interactive=False) project_.refresh_from_db() self.assertEqual("Test Project", project_.name) try: Story.objects.get(remote_id=1) except Story.DoesNotExist: self.fail("Story not created")
def test_new_story(self, mock_client): models.Webhook.objects.create(project=self.project, secret=self.secret) data = { 'events': [ { 'action': 'added', 'created_at': '2017-08-21T18:20:37.972Z', 'parent': { 'gid': '1337', 'resource_type': 'task', }, 'resource': { 'gid': '12', 'resource_type': 'story', 'resource_subtype': 'comment_added', }, 'user': { 'gid': '1123', 'resource_type': 'user', }, }, ] } mock_client.access_token().projects.find_by_id.return_value = project() mock_client.access_token().stories.find_by_id.return_value = story() response = self._get_mock_response(mock_client, data) self.assertEqual(200, response.status_code) try: models.Story.objects.get(remote_id=12) except models.Story.DoesNotExist: self.fail('Story not created')
def test_new_story(self, mock_client): models.Webhook.objects.create(project=self.project, secret=self.secret) data = { "events": [ { "action": "added", "created_at": "2017-08-21T18:20:37.972Z", "parent": { "gid": "1337", "resource_type": "task", }, "resource": { "gid": "12", "resource_type": "story", "resource_subtype": "comment_added", }, "user": { "gid": "1123", "resource_type": "user", }, }, ] } mock_client.access_token().projects.find_by_id.return_value = project() mock_client.access_token().stories.find_by_id.return_value = story() response = self._get_mock_response(mock_client, data) self.assertEqual(200, response.status_code) try: models.Story.objects.get(remote_id=12) except models.Story.DoesNotExist: self.fail("Story not created")
def test_long_story(self): """Asserts a story over 1024 characters long is truncated""" long_story = story(text='x' * 2000) self.command.client.attachments.find_by_task.return_value = [attachment()] self.command.client.attachments.find_by_id.return_value = attachment() self.command.client.stories.find_by_task.return_value = [long_story] self.command.client.stories.find_by_id.return_value = long_story self.command.handle(interactive=False, verbosity=2) self.assertTrue(Story.objects.exists()) story_instance = Story.objects.last() self.assertEqual(1024, len(story_instance.text))
def test_sync_events(self): workspace_ = Workspace.objects.create(remote_id=1, name='New Workspace') team_ = Team.objects.create(remote_id=2, name='New Team') project_ = Project.objects.create( remote_id=1, name='New Project', public=True, team=team_, workspace=workspace_) SyncToken.objects.create(sync='foo', project=project_) data = { 'data': [ { 'action': 'changed', 'created_at': '2017-08-21T18:20:37.972Z', 'parent': None, 'resource': { 'id': 1, 'name': 'Test Project' }, 'type': 'project', 'user': 1123 }, { 'action': 'changed', 'created_at': '2017-08-21T18:20:37.972Z', 'parent': None, 'resource': { 'id': 1337, 'name': 'Test Task' }, 'type': 'task', 'user': 1123 }, { 'action': 'added', 'created_at': '2017-08-21T18:20:37.972Z', 'parent': None, 'resource': { 'id': 1, 'name': 'Test Story' }, 'type': 'story', 'user': 1123 } ] } self.command.client.events.get.return_value = data self.command.client.projects.find_by_id.return_value = project() self.command.client.tasks.find_by_id.side_effect = task self.command.client.stories.find_by_id.return_value = story() self.command.handle(interactive=False) project_.refresh_from_db() self.assertEqual('Test Project', project_.name) try: Story.objects.get(remote_id=1) except Story.DoesNotExist: self.fail('Story not created')
def test_task_deleted(self, mock_client): models.Webhook.objects.create(project=self.project, secret=self.secret) task_ = models.Task.objects.create(remote_id=1337, name='Old task Name') mock_client.access_token().tasks.find_by_id.return_value = task() mock_client.access_token().attachments.find_by_task.return_value = [ attachment() ] mock_client.access_token( ).attachments.find_by_id.return_value = attachment() mock_client.access_token().stories.find_by_task.return_value = [ story() ] mock_client.access_token().stories.find_by_id.return_value = story() data = self.data.copy() data['events'][0]['action'] = 'removed' response = self._get_mock_response(mock_client, data) self.assertEqual(200, response.status_code) self.assertFalse('x-hook-secret' in response) with self.assertRaises(models.Task.DoesNotExist): models.Task.objects.get(pk=task_.pk)
def test_add_comment(self, mock_connect): mock_client = mock_connect.return_value mock_client.tasks.add_comment.return_value = fixtures.story() self.task.add_comment(text='Test comment') self.assertTrue(mock_client.tasks.add_comment.called)