Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
    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)