mirror of
https://github.com/elisspace/core.git
synced 2026-09-18 08:41:46 +00:00
Fix emulated_hue compatibility with older devices (#36090)
* Fix emulated_hue compatibility with older devices * Fix test ugliness * Fix pylint errors
This commit is contained in:
@@ -48,6 +48,66 @@ class TestEmulatedHue(unittest.TestCase):
|
||||
"""Stop the class."""
|
||||
cls.hass.stop()
|
||||
|
||||
def test_upnp_discovery_basic(self):
|
||||
"""Tests the UPnP basic discovery response."""
|
||||
with patch("threading.Thread.__init__"):
|
||||
upnp_responder_thread = emulated_hue.UPNPResponderThread(
|
||||
"0.0.0.0", 80, True, "192.0.2.42", 8080
|
||||
)
|
||||
|
||||
"""Original request emitted by the Hue Bridge v1 app."""
|
||||
request = """M-SEARCH * HTTP/1.1
|
||||
HOST:239.255.255.250:1900
|
||||
ST:ssdp:all
|
||||
Man:"ssdp:discover"
|
||||
MX:3
|
||||
|
||||
"""
|
||||
encoded_request = request.replace("\n", "\r\n").encode("utf-8")
|
||||
|
||||
response = upnp_responder_thread._handle_request(encoded_request)
|
||||
expected_response = """HTTP/1.1 200 OK
|
||||
CACHE-CONTROL: max-age=60
|
||||
EXT:
|
||||
LOCATION: http://192.0.2.42:8080/description.xml
|
||||
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.16.0
|
||||
hue-bridgeid: 001788FFFE23BFC2
|
||||
ST: urn:schemas-upnp-org:device:basic:1
|
||||
USN: uuid:2f402f80-da50-11e1-9b23-001788255acc
|
||||
|
||||
"""
|
||||
assert expected_response.replace("\n", "\r\n").encode("utf-8") == response
|
||||
|
||||
def test_upnp_discovery_rootdevice(self):
|
||||
"""Tests the UPnP rootdevice discovery response."""
|
||||
with patch("threading.Thread.__init__"):
|
||||
upnp_responder_thread = emulated_hue.UPNPResponderThread(
|
||||
"0.0.0.0", 80, True, "192.0.2.42", 8080
|
||||
)
|
||||
|
||||
"""Original request emitted by Busch-Jaeger free@home SysAP."""
|
||||
request = """M-SEARCH * HTTP/1.1
|
||||
HOST: 239.255.255.250:1900
|
||||
MAN: "ssdp:discover"
|
||||
MX: 40
|
||||
ST: upnp:rootdevice
|
||||
|
||||
"""
|
||||
encoded_request = request.replace("\n", "\r\n").encode("utf-8")
|
||||
|
||||
response = upnp_responder_thread._handle_request(encoded_request)
|
||||
expected_response = """HTTP/1.1 200 OK
|
||||
CACHE-CONTROL: max-age=60
|
||||
EXT:
|
||||
LOCATION: http://192.0.2.42:8080/description.xml
|
||||
SERVER: FreeRTOS/6.0.5, UPnP/1.0, IpBridge/1.16.0
|
||||
hue-bridgeid: 001788FFFE23BFC2
|
||||
ST: upnp:rootdevice
|
||||
USN: uuid:2f402f80-da50-11e1-9b23-001788255acc::upnp:rootdevice
|
||||
|
||||
"""
|
||||
assert expected_response.replace("\n", "\r\n").encode("utf-8") == response
|
||||
|
||||
def test_description_xml(self):
|
||||
"""Test the description."""
|
||||
result = requests.get(BRIDGE_URL_BASE.format("/description.xml"), timeout=5)
|
||||
|
||||
Reference in New Issue
Block a user