Black
This commit is contained in:
parent
da05dfe708
commit
4de97abc3a
2676 changed files with 163166 additions and 140084 deletions
|
@ -8,163 +8,178 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
|||
@asyncio.coroutine
|
||||
def test_capped_setup(hass, aioclient_mock):
|
||||
"""Test the default setup."""
|
||||
config = {'platform': 'teksavvy',
|
||||
'api_key': 'NOTAKEY',
|
||||
'total_bandwidth': 400,
|
||||
'monitored_variables': [
|
||||
'usage',
|
||||
'usage_gb',
|
||||
'limit',
|
||||
'onpeak_download',
|
||||
'onpeak_upload',
|
||||
'onpeak_total',
|
||||
'offpeak_download',
|
||||
'offpeak_upload',
|
||||
'offpeak_total',
|
||||
'onpeak_remaining']}
|
||||
config = {
|
||||
"platform": "teksavvy",
|
||||
"api_key": "NOTAKEY",
|
||||
"total_bandwidth": 400,
|
||||
"monitored_variables": [
|
||||
"usage",
|
||||
"usage_gb",
|
||||
"limit",
|
||||
"onpeak_download",
|
||||
"onpeak_upload",
|
||||
"onpeak_total",
|
||||
"offpeak_download",
|
||||
"offpeak_upload",
|
||||
"offpeak_total",
|
||||
"onpeak_remaining",
|
||||
],
|
||||
}
|
||||
|
||||
result = '{"odata.metadata":"http://api.teksavvy.com/web/Usage/$metadata'\
|
||||
'#UsageSummaryRecords","value":[{'\
|
||||
'"StartDate":"2018-01-01T00:00:00",'\
|
||||
'"EndDate":"2018-01-31T00:00:00",'\
|
||||
'"OID":"999999","IsCurrent":true,'\
|
||||
'"OnPeakDownload":226.75,'\
|
||||
'"OnPeakUpload":8.82,'\
|
||||
'"OffPeakDownload":36.24,"OffPeakUpload":1.58'\
|
||||
'}]}'
|
||||
aioclient_mock.get("https://api.teksavvy.com/"
|
||||
"web/Usage/UsageSummaryRecords?"
|
||||
"$filter=IsCurrent%20eq%20true",
|
||||
text=result)
|
||||
result = (
|
||||
'{"odata.metadata":"http://api.teksavvy.com/web/Usage/$metadata'
|
||||
'#UsageSummaryRecords","value":[{'
|
||||
'"StartDate":"2018-01-01T00:00:00",'
|
||||
'"EndDate":"2018-01-31T00:00:00",'
|
||||
'"OID":"999999","IsCurrent":true,'
|
||||
'"OnPeakDownload":226.75,'
|
||||
'"OnPeakUpload":8.82,'
|
||||
'"OffPeakDownload":36.24,"OffPeakUpload":1.58'
|
||||
"}]}"
|
||||
)
|
||||
aioclient_mock.get(
|
||||
"https://api.teksavvy.com/"
|
||||
"web/Usage/UsageSummaryRecords?"
|
||||
"$filter=IsCurrent%20eq%20true",
|
||||
text=result,
|
||||
)
|
||||
|
||||
yield from async_setup_component(hass, 'sensor', {'sensor': config})
|
||||
yield from async_setup_component(hass, "sensor", {"sensor": config})
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_data_limit')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '400'
|
||||
state = hass.states.get("sensor.teksavvy_data_limit")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "400"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_off_peak_download')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '36.24'
|
||||
state = hass.states.get("sensor.teksavvy_off_peak_download")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "36.24"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_off_peak_upload')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '1.58'
|
||||
state = hass.states.get("sensor.teksavvy_off_peak_upload")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "1.58"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_off_peak_total')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '37.82'
|
||||
state = hass.states.get("sensor.teksavvy_off_peak_total")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "37.82"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_on_peak_download')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '226.75'
|
||||
state = hass.states.get("sensor.teksavvy_on_peak_download")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "226.75"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_on_peak_upload')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '8.82'
|
||||
state = hass.states.get("sensor.teksavvy_on_peak_upload")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "8.82"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_on_peak_total')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '235.57'
|
||||
state = hass.states.get("sensor.teksavvy_on_peak_total")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "235.57"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_usage_ratio')
|
||||
assert state.attributes.get('unit_of_measurement') == '%'
|
||||
assert state.state == '56.69'
|
||||
state = hass.states.get("sensor.teksavvy_usage_ratio")
|
||||
assert state.attributes.get("unit_of_measurement") == "%"
|
||||
assert state.state == "56.69"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_usage')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '226.75'
|
||||
state = hass.states.get("sensor.teksavvy_usage")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "226.75"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_remaining')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '173.25'
|
||||
state = hass.states.get("sensor.teksavvy_remaining")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "173.25"
|
||||
|
||||
|
||||
@asyncio.coroutine
|
||||
def test_unlimited_setup(hass, aioclient_mock):
|
||||
"""Test the default setup."""
|
||||
config = {'platform': 'teksavvy',
|
||||
'api_key': 'NOTAKEY',
|
||||
'total_bandwidth': 0,
|
||||
'monitored_variables': [
|
||||
'usage',
|
||||
'usage_gb',
|
||||
'limit',
|
||||
'onpeak_download',
|
||||
'onpeak_upload',
|
||||
'onpeak_total',
|
||||
'offpeak_download',
|
||||
'offpeak_upload',
|
||||
'offpeak_total',
|
||||
'onpeak_remaining']}
|
||||
config = {
|
||||
"platform": "teksavvy",
|
||||
"api_key": "NOTAKEY",
|
||||
"total_bandwidth": 0,
|
||||
"monitored_variables": [
|
||||
"usage",
|
||||
"usage_gb",
|
||||
"limit",
|
||||
"onpeak_download",
|
||||
"onpeak_upload",
|
||||
"onpeak_total",
|
||||
"offpeak_download",
|
||||
"offpeak_upload",
|
||||
"offpeak_total",
|
||||
"onpeak_remaining",
|
||||
],
|
||||
}
|
||||
|
||||
result = '{"odata.metadata":"http://api.teksavvy.com/web/Usage/$metadata'\
|
||||
'#UsageSummaryRecords","value":[{'\
|
||||
'"StartDate":"2018-01-01T00:00:00",'\
|
||||
'"EndDate":"2018-01-31T00:00:00",'\
|
||||
'"OID":"999999","IsCurrent":true,'\
|
||||
'"OnPeakDownload":226.75,'\
|
||||
'"OnPeakUpload":8.82,'\
|
||||
'"OffPeakDownload":36.24,"OffPeakUpload":1.58'\
|
||||
'}]}'
|
||||
aioclient_mock.get("https://api.teksavvy.com/"
|
||||
"web/Usage/UsageSummaryRecords?"
|
||||
"$filter=IsCurrent%20eq%20true",
|
||||
text=result)
|
||||
result = (
|
||||
'{"odata.metadata":"http://api.teksavvy.com/web/Usage/$metadata'
|
||||
'#UsageSummaryRecords","value":[{'
|
||||
'"StartDate":"2018-01-01T00:00:00",'
|
||||
'"EndDate":"2018-01-31T00:00:00",'
|
||||
'"OID":"999999","IsCurrent":true,'
|
||||
'"OnPeakDownload":226.75,'
|
||||
'"OnPeakUpload":8.82,'
|
||||
'"OffPeakDownload":36.24,"OffPeakUpload":1.58'
|
||||
"}]}"
|
||||
)
|
||||
aioclient_mock.get(
|
||||
"https://api.teksavvy.com/"
|
||||
"web/Usage/UsageSummaryRecords?"
|
||||
"$filter=IsCurrent%20eq%20true",
|
||||
text=result,
|
||||
)
|
||||
|
||||
yield from async_setup_component(hass, 'sensor', {'sensor': config})
|
||||
yield from async_setup_component(hass, "sensor", {"sensor": config})
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_data_limit')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == 'inf'
|
||||
state = hass.states.get("sensor.teksavvy_data_limit")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "inf"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_off_peak_download')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '36.24'
|
||||
state = hass.states.get("sensor.teksavvy_off_peak_download")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "36.24"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_off_peak_upload')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '1.58'
|
||||
state = hass.states.get("sensor.teksavvy_off_peak_upload")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "1.58"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_off_peak_total')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '37.82'
|
||||
state = hass.states.get("sensor.teksavvy_off_peak_total")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "37.82"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_on_peak_download')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '226.75'
|
||||
state = hass.states.get("sensor.teksavvy_on_peak_download")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "226.75"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_on_peak_upload')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '8.82'
|
||||
state = hass.states.get("sensor.teksavvy_on_peak_upload")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "8.82"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_on_peak_total')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '235.57'
|
||||
state = hass.states.get("sensor.teksavvy_on_peak_total")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "235.57"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_usage')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == '226.75'
|
||||
state = hass.states.get("sensor.teksavvy_usage")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "226.75"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_usage_ratio')
|
||||
assert state.attributes.get('unit_of_measurement') == '%'
|
||||
assert state.state == '0'
|
||||
state = hass.states.get("sensor.teksavvy_usage_ratio")
|
||||
assert state.attributes.get("unit_of_measurement") == "%"
|
||||
assert state.state == "0"
|
||||
|
||||
state = hass.states.get('sensor.teksavvy_remaining')
|
||||
assert state.attributes.get('unit_of_measurement') == 'GB'
|
||||
assert state.state == 'inf'
|
||||
state = hass.states.get("sensor.teksavvy_remaining")
|
||||
assert state.attributes.get("unit_of_measurement") == "GB"
|
||||
assert state.state == "inf"
|
||||
|
||||
|
||||
@asyncio.coroutine
|
||||
def test_bad_return_code(hass, aioclient_mock):
|
||||
"""Test handling a return code that isn't HTTP OK."""
|
||||
aioclient_mock.get("https://api.teksavvy.com/"
|
||||
"web/Usage/UsageSummaryRecords?"
|
||||
"$filter=IsCurrent%20eq%20true",
|
||||
status=404)
|
||||
aioclient_mock.get(
|
||||
"https://api.teksavvy.com/"
|
||||
"web/Usage/UsageSummaryRecords?"
|
||||
"$filter=IsCurrent%20eq%20true",
|
||||
status=404,
|
||||
)
|
||||
|
||||
tsd = TekSavvyData(hass.loop, async_get_clientsession(hass),
|
||||
'notakey', 400)
|
||||
tsd = TekSavvyData(hass.loop, async_get_clientsession(hass), "notakey", 400)
|
||||
|
||||
result = yield from tsd.async_update()
|
||||
assert result is False
|
||||
|
@ -173,13 +188,14 @@ def test_bad_return_code(hass, aioclient_mock):
|
|||
@asyncio.coroutine
|
||||
def test_bad_json_decode(hass, aioclient_mock):
|
||||
"""Test decoding invalid json result."""
|
||||
aioclient_mock.get("https://api.teksavvy.com/"
|
||||
"web/Usage/UsageSummaryRecords?"
|
||||
"$filter=IsCurrent%20eq%20true",
|
||||
text='this is not json')
|
||||
aioclient_mock.get(
|
||||
"https://api.teksavvy.com/"
|
||||
"web/Usage/UsageSummaryRecords?"
|
||||
"$filter=IsCurrent%20eq%20true",
|
||||
text="this is not json",
|
||||
)
|
||||
|
||||
tsd = TekSavvyData(hass.loop, async_get_clientsession(hass),
|
||||
'notakey', 400)
|
||||
tsd = TekSavvyData(hass.loop, async_get_clientsession(hass), "notakey", 400)
|
||||
|
||||
result = yield from tsd.async_update()
|
||||
assert result is False
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue