コード例 #1
0
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
コード例 #2
0
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,
            ),
        ),
    )
コード例 #3
0
ファイル: test_withings.py プロジェクト: eirki/gargbot_3000
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
コード例 #4
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"])