Beispiel #1
0
 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()
Beispiel #2
0
 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")
Beispiel #4
0
 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')
Beispiel #5
0
 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")
Beispiel #6
0
 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))
Beispiel #7
0
 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')
Beispiel #8
0
 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)
Beispiel #9
0
 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)