def test_create(self): sess1 = self.session(datetime.date(2014, 9, 7), 1, 'A0001', '13') sess2 = self.session(datetime.date(2014, 9, 2), 1, 'A0001', '13') sess3 = self.session(datetime.date(2014, 9, 2), 1, 'A0001', '14') for s in ( sess1, sess2, sess3, ): FirstAidActivity.from_data(s).key.get(use_cache=False) stats = list(FirstAidUserStats.new_user_stats(self.student)) self.assertEqual(3, len(stats)) topic_stats = {s.topic_id: s for s in stats[:-1]} self.assertIn('13', topic_stats) self.assertEqual(6, topic_stats['13'].question_taken) self.assertEqual(33, topic_stats['13'].performance) self.assertIn('14', topic_stats) self.assertEqual(3, topic_stats['14'].question_taken) self.assertEqual(33, topic_stats['14'].performance) user_stats = stats[-1] self.assertEqual(9, user_stats.question_taken) self.assertEqual(33, user_stats.performance) ndb.put_multi(stats)
def test_new_activity_with_different_topic(self): sess1 = self.session(datetime.date(2014, 9, 7), 1, 'A0001', '13') sess2 = self.session(datetime.date(2014, 9, 7), 1, 'A0001', '14') self.assertNotEqual( FirstAidActivity.from_data(sess1).key.id(), FirstAidActivity.from_data(sess2).key.id() )
def test_new_activity_same_session(self): sess1 = self.session(datetime.date(2014, 9, 7), 1, 'A0001', '13') sess2 = self.session(datetime.date(2014, 9, 7), 1, 'A0001', '13') self.assertEqual( FirstAidActivity.from_data(sess1).key.id(), FirstAidActivity.from_data(sess2).key.id() )
def test_new_activity_from_data(self): day = datetime.date(2014, 9, 7) session = self.session(day, 1, 'A0001', '13') self.assertEqual('07-Sep-14', session['cal_day_dt']) activity = FirstAidActivity.from_data(session) self.assertEqual('A0001', activity.student_id) self.assertEqual('13', activity.topic_id) self.assertEqual(day, activity.day.date())
def test_create(self): sess1 = self.session(datetime.date(2014, 9, 7), 1, 'A0001', '13') sess2 = self.session(datetime.date(2014, 9, 2), 1, 'A0001', '13') sess3 = self.session(datetime.date(2014, 9, 2), 1, 'A0001', '14') for s in (sess1, sess2, sess3,): FirstAidActivity.from_data(s).key.get(use_cache=False) stats = list(FirstAidUserStats.new_user_stats(self.student)) self.assertEqual(3, len(stats)) topic_stats = {s.topic_id: s for s in stats[:-1]} self.assertIn('13', topic_stats) self.assertEqual(6, topic_stats['13'].question_taken) self.assertEqual(33, topic_stats['13'].performance) self.assertIn('14', topic_stats) self.assertEqual(3, topic_stats['14'].question_taken) self.assertEqual(33, topic_stats['14'].performance) user_stats = stats[-1] self.assertEqual(9, user_stats.question_taken) self.assertEqual(33, user_stats.performance) ndb.put_multi(stats)
def query_handler(data): _, url = data try: session_user_topic_stats = FirstAidApiClient().fetch(url) except ServiceRequestError: raise FailJobError() except ServiceResponseError: raise RetrySliceError() for session_data in session_user_topic_stats: try: education.api.validate('FirstAidSessionRowData', session_data) except ValidationError: logging.error('Invalid session stats: %s', session_data) continue yield op.db.Put(FirstAidActivity.from_data(session_data, commit=False)) yield op.counters.Increment('Session stats', 1)
def query_handler(data): _, url = data try: session_user_topic_stats = FirstAidApiClient().fetch(url) except ServiceRequestError: raise FailJobError() except ServiceResponseError: raise RetrySliceError() for session_data in session_user_topic_stats: try: education.api.validate('FirstAidSessionRowData', session_data) except ValidationError: logging.error('Invalid session stats: %s', session_data) continue yield op.db.Put( FirstAidActivity.from_data(session_data, commit=False) ) yield op.counters.Increment('Session stats', 1)
def test_new_activity_with_different_topic(self): sess1 = self.session(datetime.date(2014, 9, 7), 1, 'A0001', '13') sess2 = self.session(datetime.date(2014, 9, 7), 1, 'A0001', '14') self.assertNotEqual( FirstAidActivity.from_data(sess1).key.id(), FirstAidActivity.from_data(sess2).key.id())
def test_new_activity_same_session(self): sess1 = self.session(datetime.date(2014, 9, 7), 1, 'A0001', '13') sess2 = self.session(datetime.date(2014, 9, 7), 1, 'A0001', '13') self.assertEqual( FirstAidActivity.from_data(sess1).key.id(), FirstAidActivity.from_data(sess2).key.id())