Home Assistant Integration (#354)

This commit is contained in:
Chris Caron
2021-02-14 14:01:30 -05:00
committed by GitHub
parent 48cac98d3b
commit ca22b931ca
5 changed files with 403 additions and 14 deletions

View File

@ -941,6 +941,84 @@ TEST_URLS = (
'test_requests_exceptions': True,
}),
##################################
# NotifyHomeAssistant
##################################
('hassio://:@/', {
'instance': TypeError,
}),
('hassio://', {
'instance': TypeError,
}),
('hassios://', {
'instance': TypeError,
}),
# No Long Lived Access Token specified
('hassio://user@localhost', {
'instance': TypeError,
}),
('hassio://localhost/long-lived-access-token', {
'instance': plugins.NotifyHomeAssistant,
}),
('hassio://user:pass@localhost/long-lived-access-token/', {
'instance': plugins.NotifyHomeAssistant,
# Our expected url(privacy=True) startswith() response:
'privacy_url': 'hassio://user:****@localhost/l...n',
}),
('hassio://localhost:80/long-lived-access-token', {
'instance': plugins.NotifyHomeAssistant,
}),
('hassio://user@localhost:8123/llat', {
'instance': plugins.NotifyHomeAssistant,
'privacy_url': 'hassio://user@localhost/l...t',
}),
('hassios://localhost/llat?nid=!%', {
# Invalid notification_id
'instance': TypeError,
}),
('hassios://localhost/llat?nid=abcd', {
# Valid notification_id
'instance': plugins.NotifyHomeAssistant,
}),
('hassios://user:pass@localhost/llat', {
'instance': plugins.NotifyHomeAssistant,
'privacy_url': 'hassios://user:****@localhost/l...t',
}),
('hassios://localhost:8443/path/llat/', {
'instance': plugins.NotifyHomeAssistant,
'privacy_url': 'hassios://localhost:8443/path/l...t',
}),
('hassio://localhost:8123/a/path?accesstoken=llat', {
'instance': plugins.NotifyHomeAssistant,
# Default port; so it's stripped off
# accesstoken was specified as kwarg
'privacy_url': 'hassio://localhost/a/path/l...t',
}),
('hassios://user:password@localhost:80/llat/', {
'instance': plugins.NotifyHomeAssistant,
'privacy_url': 'hassios://user:****@localhost:80',
}),
('hassio://user:pass@localhost:8123/llat', {
'instance': plugins.NotifyHomeAssistant,
# force a failure
'response': False,
'requests_response_code': requests.codes.internal_server_error,
}),
('hassio://user:pass@localhost/llat', {
'instance': plugins.NotifyHomeAssistant,
# throw a bizzare code forcing us to fail to look it up
'response': False,
'requests_response_code': 999,
}),
('hassio://user:pass@localhost/llat', {
'instance': plugins.NotifyHomeAssistant,
# Throws a series of connection and transfer exceptions when this flag
# is set and tests that we gracfully handle them
'test_requests_exceptions': True,
}),
##################################
# NotifyIFTTT - If This Than That
##################################