From 1d6c55918986233ba16aa85ad6b2b389a5a57d5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lex=20Hermida?= Date: Thu, 14 Jun 2018 16:49:50 +0200 Subject: [PATCH] Add filters data assigned users tests --- tests/integration/test_userstories.py | 109 ++++++++++++++++++++++---- 1 file changed, 93 insertions(+), 16 deletions(-) diff --git a/tests/integration/test_userstories.py b/tests/integration/test_userstories.py index 897b6b37..efec3523 100644 --- a/tests/integration/test_userstories.py +++ b/tests/integration/test_userstories.py @@ -771,26 +771,26 @@ def test_api_filters_data(client): tag2 = "test2" tag3 = "test3" - # ------------------------------------------------------------------------------ - # | US | Status | Owner | Assigned To | Tags | Epic | - # |-------#---------#--------#-------------#---------------------#-------------- - # | 0 | status3 | user2 | None | tag1 | epic0 | - # | 1 | status3 | user1 | None | tag2 | None | - # | 2 | status1 | user3 | None | tag1 tag2 | epic1 | - # | 3 | status0 | user2 | None | tag3 | None | - # | 4 | status0 | user1 | user1 | tag1 tag2 tag3 | epic0 | - # | 5 | status2 | user3 | user1 | tag3 | None | - # | 6 | status3 | user2 | user1 | tag1 tag2 | epic0 epic2 | - # | 7 | status0 | user1 | user2 | tag3 | None | - # | 8 | status3 | user3 | user2 | tag1 | epic2 | - # | 9 | status1 | user2 | user3 | tag0 | None | - # ------------------------------------------------------------------------------ + # ---------------------------------------------------------------------------------------------------- + # | US | Status | Owner | Assigned To | Assigned Users | Tags | Epic | + # |-------#---------#--------#-------------#---------------------#---------------------#-------------- + # | 0 | status3 | user2 | None | None | tag1 | epic0 | + # | 1 | status3 | user1 | None | user1 | tag2 | None | + # | 2 | status1 | user3 | None | None | tag1 tag2 | epic1 | + # | 3 | status0 | user2 | None | None | tag3 | None | + # | 4 | status0 | user1 | user1 | None | tag1 tag2 tag3 | epic0 | + # | 5 | status2 | user3 | user1 | None | tag3 | None | + # | 6 | status3 | user2 | user1 | None | tag1 tag2 | epic0 epic2 | + # | 7 | status0 | user1 | user2 | None | tag3 | None | + # | 8 | status3 | user3 | user2 | None | tag1 | epic2 | + # | 9 | status1 | user2 | user3 | user1 | tag0 | None | + # ---------------------------------------------------------------------------------------------------- us0 = f.UserStoryFactory.create(project=project, owner=user2, assigned_to=None, status=status3, tags=[tag1]) f.RelatedUserStory.create(user_story=us0, epic=epic0) us1 = f.UserStoryFactory.create(project=project, owner=user1, assigned_to=None, - status=status3, tags=[tag2]) + status=status3, tags=[tag2], assigned_users=[user1]) us2 = f.UserStoryFactory.create(project=project, owner=user3, assigned_to=None, status=status1, tags=[tag1, tag2]) f.RelatedUserStory.create(user_story=us2, epic=epic1) @@ -811,7 +811,7 @@ def test_api_filters_data(client): status=status3, tags=[tag1]) f.RelatedUserStory.create(user_story=us8, epic=epic2) us9 = f.UserStoryFactory.create(project=project, owner=user2, assigned_to=user3, - status=status1, tags=[tag0]) + status=status1, tags=[tag0], assigned_users=[user1]) url = reverse("userstories-filters-data") + "?project={}".format(project.id) @@ -830,6 +830,9 @@ def test_api_filters_data(client): assert next(filter(lambda i: i['id'] == user2.id, response.data["assigned_to"]))["count"] == 2 assert next(filter(lambda i: i['id'] == user3.id, response.data["assigned_to"]))["count"] == 1 + assert next(filter(lambda i: i['id'] == user1.id, response.data["assigned_users"]))["count"] == 2 + assert next(filter(lambda i: i['id'] == user2.id, response.data["assigned_users"]))["count"] == 0 + assert next(filter(lambda i: i['id'] == status0.id, response.data["statuses"]))["count"] == 3 assert next(filter(lambda i: i['id'] == status1.id, response.data["statuses"]))["count"] == 2 assert next(filter(lambda i: i['id'] == status2.id, response.data["statuses"]))["count"] == 1 @@ -930,6 +933,80 @@ def test_api_filters_data(client): assert next(filter(lambda i: i['id'] == epic2.id, response.data["epics"]))["count"] == 2 +def test_api_filters_data_with_assigned_users(client): + project = f.ProjectFactory.create() + user1 = f.UserFactory.create(is_superuser=True) + f.MembershipFactory.create(user=user1, project=project) + user2 = f.UserFactory.create(is_superuser=True) + f.MembershipFactory.create(user=user2, project=project) + user3 = f.UserFactory.create(is_superuser=True) + f.MembershipFactory.create(user=user3, project=project) + + status0 = f.UserStoryStatusFactory.create(project=project) + status1 = f.UserStoryStatusFactory.create(project=project) + status2 = f.UserStoryStatusFactory.create(project=project) + status3 = f.UserStoryStatusFactory.create(project=project) + + # ----------------------------------------------------------- + # | US | Status | Owner | Assigned To | Assigned Users | + # |-------#---------#--------#-------------#----------------- + # | 0 | status3 | user2 | user2 | user2, user3 | + # | 1 | status3 | user1 | None | None | + # | 2 | status1 | user3 | None | None | + # | 3 | status0 | user2 | None | None | + # | 4 | status0 | user1 | user1 | user1 | + # ----------------------------------------------------------- + + us0 = f.UserStoryFactory.create(project=project, owner=user2, + assigned_to=user2, + assigned_users=[user2, user3], + status=status3) + f.RelatedUserStory.create(user_story=us0) + us1 = f.UserStoryFactory.create(project=project, owner=user1, + assigned_to=None, + status=status3, ) + us2 = f.UserStoryFactory.create(project=project, owner=user3, + assigned_to=None, + status=status1) + f.RelatedUserStory.create(user_story=us2) + us3 = f.UserStoryFactory.create(project=project, owner=user2, + assigned_to=None, + status=status0) + us4 = f.UserStoryFactory.create(project=project, owner=user1, + assigned_to=user1, + assigned_users=[user1], + status=status0) + + url = reverse("userstories-filters-data") + "?project={}".format(project.id) + + client.login(user1) + + # No filter + response = client.get(url) + assert response.status_code == 200 + + assert next(filter(lambda i: i['id'] == user1.id, response.data["owners"]))["count"] == 2 + assert next(filter(lambda i: i['id'] == user2.id, response.data["owners"]))["count"] == 2 + assert next(filter(lambda i: i['id'] == user3.id, response.data["owners"]))["count"] == 1 + + assert next(filter(lambda i: i['id'] is None, response.data["assigned_to"]))["count"] == 3 + assert next(filter(lambda i: i['id'] == user1.id, response.data["assigned_to"]))["count"] == 1 + assert next(filter(lambda i: i['id'] == user2.id, response.data["assigned_to"]))["count"] == 1 + assert next(filter(lambda i: i['id'] == user3.id, response.data["assigned_to"]))["count"] == 0 + + assert next(filter(lambda i: i['id'] == status0.id, response.data["statuses"]))["count"] == 2 + assert next(filter(lambda i: i['id'] == status1.id, response.data["statuses"]))["count"] == 1 + assert next(filter(lambda i: i['id'] == status2.id, response.data["statuses"]))["count"] == 0 + assert next(filter(lambda i: i['id'] == status3.id, response.data["statuses"]))["count"] == 2 + + assert next(filter(lambda i: i['id'] == user1.id, + response.data["assigned_users"]))["count"] == 1 + assert next(filter(lambda i: i['id'] == user2.id, + response.data["assigned_users"]))["count"] == 1 + assert next(filter(lambda i: i['id'] == user3.id, + response.data["assigned_users"]))["count"] == 1 + + def test_get_invalid_csv(client): url = reverse("userstories-csv")