Ejemplo n.º 1
0
def test_error_validate_user():
    """Test error Validation of user."""
    with patch(PATCH_GET) as session_get, patch(PATCH_POST) as session_post:

        session_post.return_value = MOCK_BAD_LOGIN_RESPONSE
        session_get.side_effect = get_mock_requests(ROUTES)

        client = SrpEnergyClient(TEST_ACCOUNT_ID, TEST_USER_NAME,
                                 TEST_PASSWORD)

        is_valid = client.validate()

        assert is_valid is False
Ejemplo n.º 2
0
def test_bad_parameter_end_date_string():
    """Test end date is date."""
    with patch(PATCH_GET) as session_get, patch(PATCH_POST) as session_post:

        session_post.return_value = MOCK_LOGIN_RESPONSE
        session_get.side_effect = get_mock_requests(ROUTES)

        client = SrpEnergyClient(TEST_ACCOUNT_ID, TEST_USER_NAME,
                                 TEST_PASSWORD)

        start_date = datetime(2018, 10, 5, 12, 0, 0)

        with pytest.raises(ValueError):
            client.usage(start_date, "20181001")
Ejemplo n.º 3
0
def test_error_usage_payload():
    """Test error with invalid usage payload."""
    with patch(PATCH_GET) as session_get, patch(PATCH_POST) as session_post:

        session_post.return_value = MOCK_LOGIN_RESPONSE
        session_get.side_effect = get_mock_requests(ROUTES)

        client = SrpEnergyClient(TEST_BAD_ACCOUNT_ID, TEST_USER_NAME,
                                 TEST_PASSWORD)

        start_date = datetime(2018, 9, 19, 0, 0, 0)
        end_date = datetime(2018, 9, 19, 23, 0, 0)

        with pytest.raises(Exception):
            client.usage(start_date, end_date)
Ejemplo n.º 4
0
def test_bad_parameter_start_date_after_now():
    """Test start date is not after Now."""
    with patch(PATCH_GET) as session_get, patch(PATCH_POST) as session_post:

        session_post.return_value = MOCK_LOGIN_RESPONSE
        session_get.side_effect = get_mock_requests(ROUTES)

        client = SrpEnergyClient(TEST_ACCOUNT_ID, TEST_USER_NAME,
                                 TEST_PASSWORD)

        start_date = datetime.now() + timedelta(days=10)
        end_date = datetime.now() + timedelta(days=15)

        with pytest.raises(ValueError):
            client.usage(start_date, end_date)
Ejemplo n.º 5
0
def test_get_usage():
    """Test usage."""
    with patch(PATCH_GET) as session_get, patch(PATCH_POST) as session_post:

        session_post.return_value = MOCK_LOGIN_RESPONSE
        session_get.side_effect = get_mock_requests(ROUTES)

        client = SrpEnergyClient(TEST_ACCOUNT_ID, TEST_USER_NAME,
                                 TEST_PASSWORD)

        start_date = datetime(2018, 10, 1, 6, 0, 0)
        end_date = datetime(2018, 10, 5, 12, 0, 0)

        usage = client.usage(start_date, end_date)

        assert len(usage) == 3
Ejemplo n.º 6
0
def test_daily_aggregation_tou():
    """Test that hourly roll up matches SRP Daily."""
    # "dailyReadList": [{
    #             "day": "2018-06-28T07:00:00Z",
    #             "date": "2018-06-28T07:00:00Z",
    #             "meterReadDate": "2018-06-29T00:00:00-07:00",
    #             "superOffPeakKwh": 0.0,
    #             "shoulderKwh": 0.0,
    #             "offPeakKwh": 61.0,
    #             "onPeakKwh": 39.0,
    #             "totalKwh": 0.0,
    #             "onPeakCost": 9.33,
    #             "offPeakCost": 5.51,
    #             "shoulderCost": 0.0,
    #             "superOffPeakCost": 0.0,
    #             "totalCost": 0.0,
    #             "dailyCost": 14.84
    #         }

    with patch(PATCH_GET) as session_get, patch(PATCH_POST) as session_post:

        session_post.return_value = MOCK_LOGIN_RESPONSE
        session_get.side_effect = get_mock_requests(ROUTES)

        client = SrpEnergyClient(TEST_ACCOUNT_TOU_ID, TEST_USER_NAME,
                                 TEST_PASSWORD)

        start_date = datetime(2020, 6, 28, 0, 0, 0)
        end_date = datetime(2020, 6, 28, 23, 0, 0)

        usage = client.usage(start_date, end_date, True)

        total_kwh = 0
        total_cost = 0
        for line in usage:
            _date, _hour, _isodate, kwh, cost = line
            total_kwh = total_kwh + kwh
            total_cost = total_cost + cost

        assert len(usage) == 24
        assert total_kwh == 123
        assert total_cost == 8.92
Ejemplo n.º 7
0
def test_latest_day_usage_kw():
    """Test Latest Day Usage for kwh."""
    with patch(PATCH_GET) as session_get, patch(PATCH_POST) as session_post:

        session_post.return_value = MOCK_LOGIN_RESPONSE
        session_get.side_effect = get_mock_requests(ROUTES)

        client = SrpEnergyClient(TEST_ACCOUNT_ID, TEST_USER_NAME,
                                 TEST_PASSWORD)

        start_date = datetime(2018, 9, 19, 0, 0, 0)
        end_date = datetime(2018, 9, 19, 23, 0, 0)

        usage = client.usage(start_date, end_date)

        assert len(usage) == 3

        _date, _hour, _isodate, kwh, cost = usage[-1]

        assert kwh == 0.4
        assert cost == 0.08
Ejemplo n.º 8
0
def test_time_of_use_winter_on_peak_usage():
    """Test Time of Use for winter on Peak Usage for kwh."""
    with patch(PATCH_GET) as session_get, patch(PATCH_POST) as session_post:

        session_post.return_value = MOCK_LOGIN_RESPONSE
        session_get.side_effect = get_mock_requests(ROUTES)

        client = SrpEnergyClient(TEST_ACCOUNT_TOU_ID, TEST_USER_NAME,
                                 TEST_PASSWORD)

        start_date = datetime(2019, 12, 19, 0, 0, 0)
        end_date = datetime(2019, 12, 19, 23, 0, 0)

        usage = client.usage(start_date, end_date, True)

        assert len(usage) == 3

        _date, _hour, _isodate, kwh, cost = usage[0]

        assert kwh == 2.5
        assert cost == 0.24
Ejemplo n.º 9
0
def test_date_timezone_error():
    """Test error with invalid usage payload."""
    with patch(PATCH_GET) as session_get, patch(PATCH_POST) as session_post:

        session_post.return_value = MOCK_LOGIN_RESPONSE
        session_get.side_effect = get_mock_requests(ROUTES)

        client = SrpEnergyClient(TEST_ACCOUNT_ID, TEST_USER_NAME,
                                 TEST_PASSWORD)

        start_date = datetime.now(timezone.utc) + timedelta(days=-1)
        end_date = datetime.now(timezone.utc)

        usage = client.usage(start_date, end_date)

        assert len(usage) == 3

        _date, _hour, _isodate, kwh, cost = usage[-1]

        assert kwh == 0.4
        assert cost == 0.08