diff --git a/tests/unit/h/services/bulk_api/lms_stats_test.py b/tests/unit/h/services/bulk_api/lms_stats_test.py index 52eae205b17..6f00485b32c 100644 --- a/tests/unit/h/services/bulk_api/lms_stats_test.py +++ b/tests/unit/h/services/bulk_api/lms_stats_test.py @@ -12,11 +12,43 @@ class TestBulkLMSStatsService: - def test_it(self, svc, factories): - user = factories.User() - group = factories.Group() + def test_it(self, svc, group, user, annotation, annotation_reply, reply_user): + stats = svc.assignment_stats( + groups=[group.authority_provided_id], assignment_id="ASSIGNMENT_ID" + ) + + assert stats == [ + AssignmentStats( + userid=user.userid, + display_name=user.display_name, + annotations=1, + replies=0, + last_activity=annotation.created, + ), + AssignmentStats( + userid=reply_user.userid, + display_name=reply_user.display_name, + annotations=0, + replies=1, + last_activity=annotation_reply.created, + ), + ] + + @pytest.fixture + def group(self, factories): + return factories.Group() + + @pytest.fixture + def user(self, factories): + return factories.User() + + @pytest.fixture + def reply_user(self, factories): + return factories.User() + + @pytest.fixture + def annotation(self, factories, user, group): anno = factories.Annotation(group=group) - anno_reply = factories.Annotation(group=group, references=[anno.id]) anno_slim = factories.AnnotationSlim( annotation=anno, user=user, @@ -25,40 +57,30 @@ def test_it(self, svc, factories): moderated=False, group=group, ) + factories.AnnotationMetadata( + annotation_slim=anno_slim, + data={"lms": {"assignment": {"resource_link_id": "ASSIGNMENT_ID"}}}, + ) + + return anno_slim + + @pytest.fixture + def annotation_reply(self, factories, reply_user, group, annotation): + anno_reply = factories.Annotation(group=group, references=[annotation.id]) anno_slim_reply = factories.AnnotationSlim( annotation=anno_reply, - user=user, + user=reply_user, deleted=False, shared=True, moderated=False, group=group, ) - - factories.AnnotationMetadata( - annotation_slim=anno_slim, - data={"lms": {"assignment": {"resource_link_id": "ASSIGNMENT_ID"}}}, - ) factories.AnnotationMetadata( annotation_slim=anno_slim_reply, data={"lms": {"assignment": {"resource_link_id": "ASSIGNMENT_ID"}}}, ) - stats = svc.assignment_stats( - groups=[ - group.authority_provided_id, - ], - assignment_id="ASSIGNMENT_ID", - ) - - assert stats == [ - AssignmentStats( - userid=user.userid, - display_name=user.display_name, - annotations=1, - replies=1, - last_activity=anno_slim_reply.created, - ) - ] + return anno_slim_reply @pytest.fixture def svc(self, db_session):