def test_task_with_parent(self, mock_client): models.Webhook.objects.create(project=self.project, secret=self.secret) parent_task = task(id=10, assignee=user()) child_task = task(id=11, assignee=user(), parent=parent_task.copy()) mock_client.access_token().tasks.find_all.return_value = [child_task] mock_client.access_token().tasks.find_by_id.side_effect = [ child_task, parent_task ] data = { 'events': [ { 'action': 'added', 'created_at': '2017-08-21T18:20:37.972Z', 'parent': { 'id': 10 }, 'resource': 1337, 'type': 'task', 'user': 1123 }, ] } message = json.dumps(data) signature = sign_sha256_hmac(self.secret, message) request = self.factory.post('', content_type='application/json', data=message, **{'X-Hook-Signature': signature}) views.WebhookView.as_view()(request, remote_id=3) self.assertEqual(2, models.Task.objects.count()) parent, child = tuple(models.Task.objects.order_by('remote_id')) self.assertEqual(parent, child.parent)
def test_null_email_passes(self): null_user = user(email=None) self.command.client.users.find_by_id.return_value = null_user try: self.command._sync_user(user=null_user, workspace=None) except IntegrityError as error: self.fail(error)
def test_refresh_from_asana(self, mock_connect): mock_client = mock_connect.return_value user = fixtures.user() mock_client.users.find_by_id.return_value = user self.user.refresh_from_asana() self.assertTrue(mock_client.users.find_by_id.called) self.user.refresh_from_db() self.assertEqual(user['name'], self.user.name)
def test_task_with_parent(self, mock_client): models.Webhook.objects.create(project=self.project, secret=self.secret) parent_task = task(id=10, assignee=user()) child_task = task(id=11, assignee=user(), parent=parent_task.copy()) mock_client.access_token().tasks.find_all.return_value = [child_task] mock_client.access_token().tasks.find_by_id.side_effect = [ child_task, parent_task, ] data = { "events": [ { "action": "added", "created_at": "2017-08-21T18:20:37.972Z", "parent": { "gid": "10" }, "resource": { "gid": "1337", "resource_type": "task", }, "user": { "gid": "1123", "resource_type": "user", }, }, ] } message = json.dumps(data) signature = sign_sha256_hmac(self.secret, message) request = self.factory.post("", content_type="application/json", data=message, **{"X-Hook-Signature": signature}) views.WebhookView.as_view()(request, remote_id=3) self.assertEqual(2, models.Task.objects.count()) parent, child = tuple(models.Task.objects.order_by("remote_id")) self.assertEqual(parent, child.parent)
def test_sync_users(self): self.command.client.users.find_all.return_value = [user()] self.command.client.users.find_by_id.return_value = user() self.command.handle(interactive=False, model=['Workspace', 'User']) self.assertEqual(1, User.objects.count())