Skip to content

Commit 82dfe46

Browse files
chore(test): Add test case for result for street.
1 parent 7e412e9 commit 82dfe46

File tree

1 file changed

+90
-1
lines changed

1 file changed

+90
-1
lines changed

apps/project/tests/e2e_create_street_project_test.py

Lines changed: 90 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,15 @@
1212

1313
from apps.common.utils import decode_tasks, remove_object_keys
1414
from apps.contributor.factories import ContributorUserFactory
15+
from apps.contributor.models import ContributorUserGroup
16+
from apps.mapping.firebase.pull import pull_results_from_firebase
17+
from apps.mapping.models import (
18+
MappingSession,
19+
MappingSessionResult,
20+
MappingSessionResultTemp,
21+
MappingSessionUserGroup,
22+
MappingSessionUserGroupTemp,
23+
)
1524
from apps.project.models import Organization, Project
1625
from apps.tutorial.models import Tutorial
1726
from apps.user.factories import UserFactory
@@ -25,7 +34,7 @@ def create_override():
2534
def pre_save_override(sender: typing.Any, instance: typing.Any, **kwargs): # type: ignore[reportMissingParameterType]
2635
if sender == Tutorial:
2736
instance.firebase_id = f"tutorial_{instance.client_id}"
28-
elif sender in {Project, Organization}:
37+
elif sender in {Project, Organization, ContributorUserGroup}:
2938
instance.firebase_id = instance.client_id
3039

3140
pre_save.connect(pre_save_override)
@@ -252,6 +261,34 @@ class Mutation:
252261
}
253262
"""
254263

264+
CREATE_CONTRIBUTOR_USER_GROUP = """
265+
mutation CreateContributorUserGroup($data: ContributorUserGroupCreateInput!) {
266+
createContributorUserGroup(data: $data) {
267+
... on OperationInfo {
268+
__typename
269+
messages {
270+
code
271+
field
272+
kind
273+
message
274+
}
275+
}
276+
... on ContributorUserGroupTypeMutationResponseType {
277+
errors
278+
ok
279+
result {
280+
id
281+
name
282+
description
283+
clientId
284+
isArchived
285+
firebaseId
286+
}
287+
}
288+
}
289+
}
290+
"""
291+
255292
@pytest.mark.vcr("assets/tests/projects/street/cassette")
256293
def test_street_project_e2e(self):
257294
# TODO(susilnem): Add more test with filters
@@ -529,3 +566,55 @@ def _test_project(self, filename: str):
529566
assert sanitized_tasks_actual == sanitized_tasks_expected, (
530567
"Differences found between expected and actual tasks on project in firebase."
531568
)
569+
570+
# Create contributor user group
571+
old_contributor_user_group_data = test_data["create_contributor_user_group"]
572+
for input_data in old_contributor_user_group_data:
573+
usergroup_content = self.query_check(
574+
self.Mutation.CREATE_CONTRIBUTOR_USER_GROUP,
575+
variables={
576+
"data": input_data,
577+
},
578+
)
579+
usergroup_response = usergroup_content["data"]["createContributorUserGroup"]
580+
assert usergroup_response is not None, "usergroup create response is None"
581+
assert usergroup_response["ok"]
582+
583+
# Pull results from firebase
584+
input_data = test_data["create_results"]
585+
ref_results = self.firebase_helper.ref(f"/v2/results/{project_fb_id}")
586+
ref_results.set(input_data)
587+
588+
fb_results_data = ref_results.get()
589+
assert fb_results_data is not None
590+
591+
assert [
592+
MappingSession.objects.count(),
593+
MappingSessionResult.objects.count(),
594+
MappingSessionUserGroup.objects.count(),
595+
MappingSessionUserGroupTemp.objects.count(),
596+
MappingSessionResultTemp.objects.count(),
597+
] == [0, 0, 0, 0, 0], "Mapping session data should be empty before pull from firebase"
598+
599+
project = Project.objects.get(id=project_id)
600+
assert project.progress == 0
601+
602+
with self.captureOnCommitCallbacks(execute=True):
603+
pull_results_from_firebase()
604+
605+
assert [
606+
MappingSession.objects.count(),
607+
MappingSessionResult.objects.count(),
608+
MappingSessionUserGroup.objects.count(),
609+
MappingSessionUserGroupTemp.objects.count(),
610+
MappingSessionResultTemp.objects.count(),
611+
] == [
612+
test_data["expected_pulled_results_data"]["mapping_session_count"],
613+
test_data["expected_pulled_results_data"]["mapping_session_results_count"],
614+
test_data["expected_pulled_results_data"]["mapping_session_user_groups_count"],
615+
0,
616+
0,
617+
], "Difference found for pulled results data."
618+
619+
project.refresh_from_db()
620+
assert project.progress == test_data["expected_pulled_results_data"]["progress"]

0 commit comments

Comments
 (0)