Exemple #1
0
    def test_badParameterEndDateString(self):

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

        client = SrpEnergyClient(self.accountid, self.username, self.password)

        with self.assertRaises(ValueError):
            client.usage(start_date, '20181001')
Exemple #2
0
    def test_bad_crendentials(self):

        start_date = datetime(2018, 9, 19, 0, 0, 0)
        end_date = datetime(2018, 9, 19, 23, 0, 0)
        client = SrpEnergyClient('a', 'b', 'c')

        with self.assertRaises(TypeError):
            client.usage(start_date, end_date)
Exemple #3
0
    def test_badParameterStartDateAfterNow(self):

        start_date = datetime.now() + timedelta(days=10)
        end_date = datetime(2018, 10, 5, 12, 0, 0)

        client = SrpEnergyClient(self.accountid, self.username, self.password)

        with self.assertRaises(ValueError):
            client.usage(start_date, end_date)
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")
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)
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)
Exemple #7
0
    def test_getUsage(self):

        start_date = datetime(2018, 10, 1, 6, 0, 0)
        end_date = datetime(2018, 10, 5, 12, 0, 0)
        client = SrpEnergyClient(self.accountid, self.username, self.password)

        usage = client.usage(start_date, end_date)

        self.assertEqual(len(usage), 120)
Exemple #8
0
    def test_latestDayUsageKw(self):

        start_date = datetime(2018, 9, 19, 0, 0, 0)
        end_date = datetime(2018, 9, 19, 23, 0, 0)
        client = SrpEnergyClient(self.accountid, self.username, self.password)

        usage = client.usage(start_date, end_date)

        self.assertEqual(len(usage), 24)

        date, hour, isodate, kwh, cost = usage[-1]

        self.assertEqual(kwh, '0.4')
        self.assertEqual(cost, '0.09')
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
Exemple #10
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
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
Exemple #12
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
Exemple #13
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