class ActivityTest(unittest.TestCase): def setUp(self): self.ddbb = DDBB() main = Mock() main.ddbb = self.ddbb main.profile = Profile() main.ddbb.connect() main.ddbb.create_tables(add_default=True) # We need a sport self.uc = UC() self.uc.set_us(False) self.service = ActivityService(pytrainer_main=main) records_table = DeclarativeBase.metadata.tables['records'] self.ddbb.session.execute(records_table.insert({'distance': 46.18, 'maxspeed': 44.6695617695, 'maxpace': 1.2, 'title': u'test activity', 'unegative': 564.08076273, 'upositive': 553.05993673, 'average': 22.3882142185, 'date_time_local': u'2016-07-24 12:58:23+0300', 'calories': 1462, 'beats': 115.0, 'comments': u'test comment', 'pace': 2.4, 'date_time_utc': u'2016-07-24T09:58:23Z', 'date': datetime.date(2016, 7, 24), 'duration': 7426, 'sport': 1, 'maxbeats': 120.0})) laps_table = DeclarativeBase.metadata.tables['laps'] self.ddbb.session.execute(laps_table.insert({'distance': 46181.9, 'lap_number': 0, 'calories': 1462, 'elapsed_time': u'7426.0', 'record': 1, 'intensity': u'active', 'avg_hr': 136, 'max_hr': 173, 'laptrigger': u'manual'})) self.activity = self.service.get_activity(1) def tearDown(self): self.service.clear_pool() self.ddbb.disconnect() self.ddbb.drop_tables() self.uc.set_us(False) def test_activity_date_time(self): self.assertEqual(self.activity.date_time, datetime.datetime(2016, 7, 24, 12, 58, 23, tzinfo=tzoffset(None, 10800))) def test_activity_distance(self): self.assertEqual(self.activity.distance, 46.18) def test_activity_sport_name(self): self.assertEqual(self.activity.sport_name, 'Mountain Bike') def test_activity_duration(self): self.assertEqual(self.activity.duration, 7426) def test_activity_time(self): self.assertEqual(self.activity.time, self.activity.duration) def test_activity_starttime(self): self.assertEqual(self.activity.starttime, '12:58:23 PM') def test_activity_time_tuple(self): self.assertEqual(self.activity.time_tuple, (2, 3, 46)) def test_activity_lap(self): self.maxDiff = None self.assertEqual(self.activity.laps[0], {'distance': 46181.9, 'end_lon': None, 'lap_number': 0, 'start_lon': None, 'id_lap': 1, 'calories': 1462, 'comments': None, 'laptrigger': u'manual', 'elapsed_time': u'7426.0', 'record': 1, 'intensity': u'active', 'avg_hr': 136, 'max_hr': 173, 'end_lat': None, 'start_lat': None, 'max_speed': None}) lap = self.activity.Laps[0] self.assertEqual(lap.distance, 46181.9) self.assertEqual(lap.duration, 7426.0) self.assertEqual(lap.calories, 1462) self.assertEqual(lap.avg_hr, 136) self.assertEqual(lap.max_hr, 173) self.assertEqual(lap.activity, self.activity) self.assertEqual(lap.lap_number, 0) self.assertEqual(lap.intensity, u'active') self.assertEqual(lap.laptrigger, u'manual') def test_activity_get_value_f(self): self.assertEqual(self.activity.get_value_f('distance', "%0.2f"), '46.18') self.assertEqual(self.activity.get_value_f('average', "%0.2f"), '22.39') self.assertEqual(self.activity.get_value_f('maxspeed', "%0.2f"), '44.67') self.assertEqual(self.activity.get_value_f('time', '%s'), '2:03:46') self.assertEqual(self.activity.get_value_f('calories', "%0.0f"), '1462') self.assertEqual(self.activity.get_value_f('pace', "%s"), '2:24') self.assertEqual(self.activity.get_value_f('maxpace', "%s"), '1:12') self.assertEqual(self.activity.get_value_f('upositive', "%0.2f"), '553.06') self.assertEqual(self.activity.get_value_f('unegative', "%0.2f"), '564.08') def test_activity_get_value_f_us(self): self.uc.set_us(True) self.assertEqual(self.activity.get_value_f('distance', "%0.2f"), '28.69') self.assertEqual(self.activity.get_value_f('average', "%0.2f"), '13.91') self.assertEqual(self.activity.get_value_f('maxspeed', "%0.2f"), '27.76') self.assertEqual(self.activity.get_value_f('time', '%s'), '2:03:46') self.assertEqual(self.activity.get_value_f('calories', "%0.0f"), '1462') self.assertEqual(self.activity.get_value_f('pace', "%s"), '3:52') self.assertEqual(self.activity.get_value_f('maxpace', "%s"), '1:56') self.assertEqual(self.activity.get_value_f('upositive', "%0.2f"), '1814.50') self.assertEqual(self.activity.get_value_f('unegative', "%0.2f"), '1850.66') def test_activity_service_null(self): none_activity = self.service.get_activity(None) self.assertIsNone(none_activity.id) def test_activity_remove(self): self.service.remove_activity_from_db(self.activity) try: self.service.get_activity(1) except NoResultFound: pass else: self.fail() def test_activities_for_day(self): activity = list(self.service.get_activities_for_day(datetime.date(2016, 7, 24)))[0] self.assertEqual(self.activity, activity) def test_activities_period(self): activity = list(self.service.get_activities_period(DateRange.for_week_containing(datetime.date(2016, 7, 24))))[0] self.assertEqual(self.activity, activity) def test_all_activities(self): activity = list(self.service.get_all_activities())[0] self.assertEqual(self.activity, activity)