Skip to content

Waleed/fix figures tests #126

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions figures/sites.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,20 +176,19 @@ def get_course_keys_for_site(site, active_courses=False):
'edx_organizations', flat=True)
org_courses = organizations.models.OrganizationCourse.objects.filter(organization__in=edx_orgs).using(
read_replica_or_default())

if active_courses:
org_courses = org_courses.filter(active=True)

course_ids = org_courses.values_list('course_id', flat=True)
else:
course_ids = CourseOverview.objects.using(read_replica_or_default()).all()
if active_courses:
if active_courses:
course_ids = course_ids.filter(end_date__gte=datetime.now())

course_keys = course_ids.values_list('id', flat=True)
print(f"DEBUG: Course Keys -> {course_keys}")

return [as_course_key(str(key)) for key in course_ids.values_list('course_id', flat=True)]

course_ids = course_ids.values_list('id', flat=True)

return [as_course_key(cid) for cid in course_ids]


def site_course_ids(site):
Expand Down
29 changes: 19 additions & 10 deletions tests/test_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def test_populate_daily_metrics_site_level_error(transactional_db,
error_message = dict(message=[u'expected failure'])
assert not CourseOverview.objects.count()

def mock_get_courses_fail(site):
def mock_get_courses_fail(site, active_courses=False):
raise Exception(error_message)

assert SiteDailyMetrics.objects.count() == 0
Expand All @@ -92,9 +92,13 @@ def mock_get_courses_fail(site):

figures.tasks.populate_daily_metrics(date_for=date_for)

last_log = caplog.records[0]
assert last_log.message.startswith(
'FIGURES:FAIL populate_daily_metrics unhandled site level exception for site')
error_found = False
for record in caplog.records:
if record.message.startswith('FIGURES:FAIL populate_daily_metrics unhandled site level exception for site'):
error_found = True
break

assert error_found, "Expected error message not found in logs"


@pytest.mark.skipif(OPENEDX_RELEASE == GINKGO,
Expand All @@ -105,7 +109,7 @@ def test_populate_daily_metrics_error(transactional_db, monkeypatch):
error_message = dict(message=[u'expected failure'])
assert not CourseOverview.objects.count()

def mock_get_courses(site):
def mock_get_courses(site, active_courses=False):
CourseOverviewFactory()
return CourseOverview.objects.all()

Expand Down Expand Up @@ -142,7 +146,7 @@ def test_populate_daily_metrics_enrollment_data_error(transactional_db,
error_message = dict(message=[u'expected failure'])
assert not CourseOverview.objects.count()

def mock_get_courses(site):
def mock_get_courses(site, active_courses=False):
CourseOverviewFactory()
return CourseOverview.objects.all()

Expand All @@ -167,10 +171,15 @@ def mock_update_learners_progress_for_course(course):
figures.tasks, 'update_enrollment_data', mock_update_enrollment_data_fails)
monkeypatch.setattr(
figures.tasks, 'update_learners_progress_for_course', mock_update_learners_progress_for_course)
figures.tasks.populate_daily_metrics(date_for=date_for)
last_log = caplog.records[-1]
assert last_log.message.startswith(
'FIGURES:FAIL figures.tasks update_enrollment_data')
figures.tasks.populate_daily_metrics(date_for=date_for, active_courses=False)

error_found = False
for record in caplog.records:
if record.message.startswith('FIGURES:FAIL figures.tasks update_enrollment_data'):
error_found = True
break

assert error_found, "Expected error message not found in logs"


@pytest.mark.skipif(OPENEDX_RELEASE == GINKGO,
Expand Down