def test_course_mau_etl(simple_mau_test_data): """ Integration test for the functions in this mod Test that the pipeline loads data for a simple case """ our_site = simple_mau_test_data['our_site'] our_course = simple_mau_test_data['our_course'] month_for = simple_mau_test_data['month_for'] expected_mau_ids = simple_mau_test_data['expected_mau_ids'] obj, created = collect_course_mau(site=our_site, courselike=our_course.id, month_for=month_for) assert obj assert created assert obj.mau == len(expected_mau_ids)
def populate_course_mau(site_id, course_id, month_for=None, force_update=False): """Populates the MAU for the given site, course, and month """ if month_for: month_for = as_date(month_for) else: month_for = datetime.datetime.utcnow().date() site = Site.objects.get(id=site_id) start_time = time.time() obj, _created = collect_course_mau(site=site, courselike=course_id, month_for=month_for, overwrite=force_update) if not obj: msg = 'populate_course_mau failed for course {course_id}'.format( course_id=str(course_id)) logger.error(msg) elapsed_time = time.time() - start_time logger.info('populate_course_mau Elapsed time (seconds)={}. cdm_obj={}'.format( elapsed_time, obj))