Skip to content

Commit

Permalink
Refactor stats service tests to use more granular fixtures
Browse files Browse the repository at this point in the history
  • Loading branch information
marcospri committed Apr 15, 2024
1 parent c5b380c commit 808d179
Showing 1 changed file with 48 additions and 26 deletions.
74 changes: 48 additions & 26 deletions tests/unit/h/services/bulk_api/lms_stats_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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):
Expand Down

0 comments on commit 808d179

Please sign in to comment.