def test_daily_report_no_data(mock_Fitbit: Mock, mock_Withings: Mock, conn: connection): withings_instance1, withings_instance2 = Mock(), Mock() mock_Withings.side_effect = [withings_instance1, withings_instance2] withings_instance1.measure_get_activity.return_value = MeasureGetActivityResponse( activities=[], more=False, offset=0) withings_instance2.measure_get_activity.return_value = MeasureGetActivityResponse( activities=[], more=False, offset=0) fitbit_instance1, fitbit_instance2 = Mock(), Mock() mock_Fitbit.side_effect = [fitbit_instance1, fitbit_instance2] fitbit_instance1.get_bodyweight.return_value = {"weight": []} fitbit_instance2.get_bodyweight.return_value = {"weight": []} fitbit_instance1.time_series.return_value = {"activities-steps": []} fitbit_instance2.time_series.return_value = {"activities-steps": []} response = health.report(conn) assert response is None
def test_measure_get_activity(withings_api: WithingsApi) -> None: """Test function.""" responses_add_measure_get_activity() assert withings_api.measure_get_activity() == MeasureGetActivityResponse( more=False, offset=0, activities=( MeasureGetActivityActivity( date=arrow.get("2019-01-01").to(TIMEZONE0), timezone=TIMEZONE0, is_tracker=True, deviceid="dev1", brand=100, steps=101, distance=102.1, elevation=103.1, soft=104, moderate=105, intense=106, active=107, calories=108.1, totalcalories=109.1, hr_average=110, hr_min=111, hr_max=112, hr_zone_0=113, hr_zone_1=114, hr_zone_2=115, hr_zone_3=116, ), MeasureGetActivityActivity( date=arrow.get("2019-01-02").to(TIMEZONE1), timezone=TIMEZONE1, is_tracker=False, deviceid="dev2", brand=200, steps=201, distance=202.1, elevation=203.1, soft=204, moderate=205, intense=206, active=207, calories=208.1, totalcalories=209.1, hr_average=210, hr_min=211, hr_max=212, hr_zone_0=213, hr_zone_1=214, hr_zone_2=215, hr_zone_3=216, ), ), )
def test_withings_steps_no_data(conn: connection): user = withings_user(conn) test_date = pendulum.Date(2020, 1, 2) none_data = { "timezone": dt.tzinfo(), "brand": 1, "is_tracker": True, "totalcalories": 0.1, } return_value = MeasureGetActivityResponse( activities=(MeasureGetActivityActivity(date=arrow.get( test_date.subtract(days=1)), steps=123, **none_data), ), more=False, offset=0, ) user._steps_api_call = lambda date: return_value # type: ignore steps = user.steps(test_date) assert steps == 0
def test_daily_report(mock_Fitbit: Mock, mock_Withings: Mock, conn: connection): test_date = pendulum.datetime(2020, 1, 2, 12) pendulum.set_test_now(test_date) withings_instance1, withings_instance2 = Mock(), Mock() none_data = { "timezone": None, "deviceid": None, "brand": None, "is_tracker": None, "distance": None, "elevation": None, "soft": None, "moderate": None, "intense": None, "active": None, "calories": None, "totalcalories": None, "hr_average": None, "hr_min": None, "hr_max": None, "hr_zone_0": None, "hr_zone_1": None, "hr_zone_2": None, "hr_zone_3": None, } withings_instance1.measure_get_activity.return_value = MeasureGetActivityResponse( activities=(MeasureGetActivityActivity(date=arrow.get( test_date.subtract(days=1)), steps=6620, **none_data), ), more=False, offset=0, ) withings_instance2.measure_get_activity.return_value = MeasureGetActivityResponse( activities=( MeasureGetActivityActivity(date=arrow.get( test_date.subtract(days=1)), steps=6619, **none_data), MeasureGetActivityActivity(date=arrow.get(test_date), steps=22, **none_data), ), more=False, offset=0, ) mock_Withings.side_effect = [withings_instance1, withings_instance2] fitbit_instance1, fitbit_instance2 = Mock(), Mock() mock_Fitbit.side_effect = [fitbit_instance1, fitbit_instance2] fitbit_instance1.get_bodyweight.return_value = { "weight": [{ "date": "2000-01-02", "time": "10:11:12", "weight": 50 }] } fitbit_instance2.get_bodyweight.return_value = { "weight": [ { "date": "2020-01-01", "time": "10:11:12", "weight": 75 }, { "date": "2020-01-02", "time": "10:11:12", "weight": 100 }, ] } fitbit_instance1.time_series.return_value = { "activities-steps": [{ "dateTime": "2020-01-01", "value": "13475" }] } fitbit_instance2.time_series.return_value = { "activities-steps": [ { "dateTime": "2020-01-01", "value": "13474" }, { "dateTime": "2020-01-02", "value": "86" }, ] } response = health.report(conn) assert response is not None assert len(response["blocks"]) == 4 assert any("*6620* skritt" in block["text"]["text"] for block in response["blocks"]) assert any("*6619* skritt" in block["text"]["text"] for block in response["blocks"]) assert not any("*22* skritt" in block["text"]["text"] for block in response["blocks"]) assert any("*13475* skritt" in block["text"]["text"] for block in response["blocks"]) assert any("*13474* skritt" in block["text"]["text"] for block in response["blocks"]) assert not any("*86* skritt" in block["text"]["text"] for block in response["blocks"]) assert any("*100* kg" in block["text"]["text"] for block in response["blocks"]) assert not any("*50* kg" in block["text"]["text"] for block in response["blocks"]) assert not any("*125* kg" in block["text"]["text"] for block in response["blocks"])