示例#1
0
def test_get_estimated_actuals_404():
    """Test get_estimated_actuals with 404 status code."""
    # Arrange
    api_key = '12345'
    resource_id = '1234-1234'
    endpoint = 'estimated_actuals'
    period = 'PT30M'
    hours = '170'
    expected_url = f'{BASE_URL}/{UTILTY_URI}/{resource_id}/{endpoint}'

    responses.add(responses.GET, expected_url, status=404)

    # Act
    site = UtilitySite(api_key, resource_id)
    with pytest.raises(SiteError):
        site.get_estimated_actuals(period, hours)
示例#2
0
def test_get_estimated_actuals_200():
    """Test get_estimated_actuals with 200 status code."""
    # Arrange
    api_key = '12345'
    resource_id = '1234-1234'
    endpoint = 'estimated_actuals'
    period = 'PT30M'
    hours = '170'
    expected_url = f'{BASE_URL}/{UTILTY_URI}/{resource_id}/{endpoint}'

    estimated_actual_response = {
        "estimated_actuals": [{
            "pv_estimate": "10",
            "period_end": "2018-01-01T01:00:00.00000Z",
            "period": "PT30M"
        }, {
            "pv_estimate": "9",
            "period_end": "2018-01-01T12:30:00.00000Z",
            "period": "PT30M"
        }]
    }

    responses.add(responses.GET,
                  expected_url,
                  json=estimated_actual_response,
                  status=200,
                  content_type='applicaiton/json')

    # Act
    site = UtilitySite(api_key, resource_id)
    estimated_actuals = site.get_estimated_actuals(period, hours)

    # Assert
    assert isinstance(estimated_actuals, dict)
    assert len(estimated_actuals['estimated_actuals']) == 2
示例#3
0
def test_get_estimated_actuals_429():
    """Test get_estimated_actuals with 429 status code."""
    # Arrange
    api_key = '12345'
    resource_id = '1234-1234'
    endpoint = 'estimated_actuals'
    period = 'PT30M'
    hours = '170'
    expected_url = f'{BASE_URL}/{UTILTY_URI}/{resource_id}/{endpoint}'
    headers = {'x-rate-limit-reset': '155555555'}
    responses.add(responses.GET,
                  expected_url,
                  status=429,
                  adding_headers=headers)

    # Act
    site = UtilitySite(api_key, resource_id)
    with pytest.raises(RateLimitExceeded):
        site.get_estimated_actuals(period, hours)