1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
import unittest
import os
import asyncio
from openhomedevice.device import Device
from aioresponses import aioresponses
def async_test(coro):
def wrapper(*args, **kwargs):
loop = asyncio.new_event_loop()
try:
return loop.run_until_complete(coro(*args, **kwargs))
finally:
loop.close()
return wrapper
class DeviceWithProduct2ServiceTests(unittest.TestCase):
@async_test
@aioresponses()
async def setUp(self, mocked):
LOCATION = "http://mydevice:12345/desc.xml"
with open(
os.path.join(os.path.dirname(__file__), "data/v2description.xml")
) as file:
mocked.get(LOCATION, body=file.read())
mocked.get(
"http://mydevice:12345/4c494e4e-1234-ab12-abcd-01234567819f/Upnp/av.openhome.org-Product-2/service.xml",
body="<scpd xmlns=\"urn:schemas-upnp-org:service-1-0\"><serviceStateTable/></scpd>",
)
mocked.get(
"http://mydevice:12345/4c494e4e-1234-ab12-abcd-01234567819f/Upnp/av.openhome.org-Volume-2/service.xml",
body="<scpd xmlns=\"urn:schemas-upnp-org:service-1-0\"><serviceStateTable/></scpd>",
)
mocked.get(
"http://mydevice:12345/4c494e4e-1234-ab12-abcd-01234567819f/Upnp/av.openhome.org-Info-1/service.xml",
body="<scpd xmlns=\"urn:schemas-upnp-org:service-1-0\"><serviceStateTable/></scpd>",
)
mocked.get(
"http://mydevice:12345/4c494e4e-1234-ab12-abcd-01234567819f/Upnp/av.openhome.org-Playlist-1/service.xml",
body="<scpd xmlns=\"urn:schemas-upnp-org:service-1-0\"><serviceStateTable/></scpd>",
)
self.sut = Device(LOCATION)
await self.sut.init()
soap_request_calls = []
return super().setUp()
def test_product_service_exists(self):
self.assertIsNotNone(self.sut.product_service)
|