Add filters data assigned users tests

remotes/origin/3.4.0rc
Álex Hermida 2018-06-14 16:49:50 +02:00 committed by Miguel Gonzalez
parent be66c3270c
commit 1d6c559189
1 changed files with 93 additions and 16 deletions

View File

@ -771,26 +771,26 @@ def test_api_filters_data(client):
tag2 = "test2" tag2 = "test2"
tag3 = "test3" tag3 = "test3"
# ------------------------------------------------------------------------------ # ----------------------------------------------------------------------------------------------------
# | US | Status | Owner | Assigned To | Tags | Epic | # | US | Status | Owner | Assigned To | Assigned Users | Tags | Epic |
# |-------#---------#--------#-------------#---------------------#-------------- # |-------#---------#--------#-------------#---------------------#---------------------#--------------
# | 0 | status3 | user2 | None | tag1 | epic0 | # | 0 | status3 | user2 | None | None | tag1 | epic0 |
# | 1 | status3 | user1 | None | tag2 | None | # | 1 | status3 | user1 | None | user1 | tag2 | None |
# | 2 | status1 | user3 | None | tag1 tag2 | epic1 | # | 2 | status1 | user3 | None | None | tag1 tag2 | epic1 |
# | 3 | status0 | user2 | None | tag3 | None | # | 3 | status0 | user2 | None | None | tag3 | None |
# | 4 | status0 | user1 | user1 | tag1 tag2 tag3 | epic0 | # | 4 | status0 | user1 | user1 | None | tag1 tag2 tag3 | epic0 |
# | 5 | status2 | user3 | user1 | tag3 | None | # | 5 | status2 | user3 | user1 | None | tag3 | None |
# | 6 | status3 | user2 | user1 | tag1 tag2 | epic0 epic2 | # | 6 | status3 | user2 | user1 | None | tag1 tag2 | epic0 epic2 |
# | 7 | status0 | user1 | user2 | tag3 | None | # | 7 | status0 | user1 | user2 | None | tag3 | None |
# | 8 | status3 | user3 | user2 | tag1 | epic2 | # | 8 | status3 | user3 | user2 | None | tag1 | epic2 |
# | 9 | status1 | user2 | user3 | tag0 | None | # | 9 | status1 | user2 | user3 | user1 | tag0 | None |
# ------------------------------------------------------------------------------ # ----------------------------------------------------------------------------------------------------
us0 = f.UserStoryFactory.create(project=project, owner=user2, assigned_to=None, us0 = f.UserStoryFactory.create(project=project, owner=user2, assigned_to=None,
status=status3, tags=[tag1]) status=status3, tags=[tag1])
f.RelatedUserStory.create(user_story=us0, epic=epic0) f.RelatedUserStory.create(user_story=us0, epic=epic0)
us1 = f.UserStoryFactory.create(project=project, owner=user1, assigned_to=None, 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, us2 = f.UserStoryFactory.create(project=project, owner=user3, assigned_to=None,
status=status1, tags=[tag1, tag2]) status=status1, tags=[tag1, tag2])
f.RelatedUserStory.create(user_story=us2, epic=epic1) f.RelatedUserStory.create(user_story=us2, epic=epic1)
@ -811,7 +811,7 @@ def test_api_filters_data(client):
status=status3, tags=[tag1]) status=status3, tags=[tag1])
f.RelatedUserStory.create(user_story=us8, epic=epic2) f.RelatedUserStory.create(user_story=us8, epic=epic2)
us9 = f.UserStoryFactory.create(project=project, owner=user2, assigned_to=user3, 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) 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'] == 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'] == 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'] == 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'] == status1.id, response.data["statuses"]))["count"] == 2
assert next(filter(lambda i: i['id'] == status2.id, response.data["statuses"]))["count"] == 1 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 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): def test_get_invalid_csv(client):
url = reverse("userstories-csv") url = reverse("userstories-csv")