def test_did_not_wear_fitbit(self): update_fitbit_data(fitbit_user=self.account.fitbit_user, date_string="2019-02-14") fitbit_day = FitbitDay.objects.get(account=self.account) self.assertFalse(fitbit_day.wore_fitbit)
def testUpdateTaskCreatesDay(self): self.timezone.return_value = pytz.timezone('Poland') self.get_steps.return_value = [{'time': '10:10:00', 'value': 20}] self.get_distance.return_value = [{'time': '10:10:00', 'value': 0.123}] update_fitbit_data(fitbit_user=self.account.fitbit_user, date_string="2018-02-14") fitbit_day = FitbitDay.objects.get(account=self.account) self.assertEqual(fitbit_day.get_timezone().zone, "Poland") self.assertEqual(fitbit_day.date.strftime('%Y-%m-%d'), "2018-02-14") self.assertEqual(fitbit_day.step_count, 20) self.assertEqual(fitbit_day.distance, 0.123)
def test_updates_wore_fitbit(self): heart_rates = [] for offset in range(20): time = datetime(2018, 2, 14, 11) + timedelta(minutes=offset) heart_rates.append({ 'time': time.strftime('%H:%M:00'), 'value': 70 }) self.get_heart_rate.return_value = heart_rates update_fitbit_data(fitbit_user=self.account.fitbit_user, date_string="2018-02-14") fitbit_day = FitbitDay.objects.get(account=self.account) self.assertTrue(fitbit_day.wore_fitbit)
def test_updates_devices(self): now = timezone.now() last_update_time = timezone.now() - timedelta(minutes=20) self.get_devices.return_value = [{ 'battery_level': 98, 'device_version': 'example scale updated', 'id': '12345678', 'last_sync_time': now - timedelta(minutes=90), 'mac': 'EXAMPLE-MAC-ADDRESS', 'type': 'SCALE' }, { 'battery_level': 70, 'device_version': 'Versa 2', 'id': '23456789', 'last_sync_time': last_update_time, 'mac': 'EXAMPLE-MAC-ADDRESS', 'type': 'TRACKER' }, { 'battery_level': 0, 'id': 'old-broken-device', 'last_sync_time': now - timedelta(days=1000) }] FitbitDevice.objects.create(account=self.account, device_type='SCALE', device_version='example scale', fitbit_id='12345678', mac='EXAMPLE-MAC-ADDRESS') update_fitbit_data(fitbit_user=self.account.fitbit_user, date_string="2019-02-14") devices = FitbitDevice.objects.filter( account=self.account).order_by('id').all() self.assertEqual(len(devices), 3) self.assertEqual([device.device_version for device in devices], ['example scale updated', 'Versa 2', None]) self.assertEqual(self.account.get_last_tracker_sync_time(), last_update_time)
def test_updated_completely_accurately_marked(self): update_fitbit_data(fitbit_user=self.account.fitbit_user, date_string="2019-02-14") fitbit_day = FitbitDay.objects.get(account=self.account) self.assertFalse(fitbit_day.completely_updated) self.get_devices.return_value = [{ 'battery_level': 70, 'device_version': 'Versa 2', 'id': '12345', 'last_sync_time': timezone.now(), 'mac': 'EXAMPLE-MAC-ADDRESS', 'type': 'TRACKER' }] update_fitbit_data(fitbit_user=self.account.fitbit_user, date_string="2019-02-14") fitbit_day = FitbitDay.objects.get(account=self.account) self.assertTrue(fitbit_day.completely_updated)