async def test_uvoauth_https(server, loop): url = 'https://myoauth.com/' ctx = ssl.create_default_context() ctx.check_hostname = False ctx.verify_mode = ssl.CERT_NONE resolver = Resolver(loop) resolver.add_to_cache(b'myoauth.com', 443, server.https_host.encode(), 30, port=server.https_port) oauth = Oauth(loop, url + 'authorize', url + 'token', '1234', '5678', 'http://example.com/callback', ssl=ctx, resolver=resolver) oauth.register_auth_code('newuser', ACCESS_CODE) api_url = (url + 'api').encode() response = await oauth.get(api_url, identifier='newuser', ssl=ctx) assert_equal(response.json(), {'Authorization': 'Bearer {}'.format(FIRST_TOKEN)})
async def test_hue_link(server, loop): resolver = Resolver(loop) resolver.add_to_cache(b'hue', 80, server.host.encode(), 60, port=server.port) server.press_button() hue = Hue(loop, b'http://hue/', resolver=resolver) assert_equal(await hue.link(), hue.hue_id) assert_equal(len(hue.hue_id), 32)
async def test_img_processor_health(server, loop): resolver = Resolver(loop) resolver.add_to_cache(b'img-processor', 80, server.host.encode(), 60, port=server.port) session = Session(10, loop, resolver=resolver) response = await session.get(b'http://img-processor/health') assert_equal(response.json(), {})
async def test_hue_link_unauthorized(server, loop): resolver = Resolver(loop) resolver.add_to_cache(b'hue', 80, server.host.encode(), 60, port=server.port) hue = Hue(loop, b'http://hue/', resolver=resolver) try: await hue.link() except HueException: pass else: raise AssertionError('Should have raised a HueException.')
async def test_hue_api(server, loop): resolver = Resolver(loop) resolver.add_to_cache(b'hue', 80, server.host.encode(), 60, port=server.port) server.press_button() hue = Hue(loop, b'http://hue/', resolver=resolver) await hue.link() response = await hue.api(b'GET', b'lights') lights = response.json() assert_equal(len(lights), 2)
async def test_img_processor(server, loop): resolver = Resolver(loop) resolver.add_to_cache(b'img-processor', 80, server.host.encode(), 60, port=server.port) session = Session(10, loop, resolver=resolver) response = await session.post(b'http://img-processor/image', data=open('tests/test_data/image', 'rb').read()) assert_equal(response.json(), {"rgb": [220, 212, 190]})
async def main(settings=None): widgets = WidgetServer('dashboard/widgets', settings=settings, resolver=Resolver(asyncio.get_event_loop(), ipv6=False)) await widgets.start() return widgets
async def test_hue_set_all_states(server, loop): resolver = Resolver(loop) resolver.add_to_cache(b'hue', 80, server.host.encode(), 60, port=server.port) server.press_button() hue = Hue(loop, b'http://hue/', resolver=resolver) await hue.link() xy = { "xy": [1, 2]} assert_equal(await hue.set_states(xy), True) # cached lights = await hue.lights() assert_not_equal(lights["1"]["state"]["xy"], xy["xy"]) assert_not_equal(lights["2"]["state"]["xy"], xy["xy"]) lights = await hue.lights(refresh=True) assert_equal(lights["1"]["state"]["xy"], xy["xy"]) assert_equal(lights["2"]["state"]["xy"], xy["xy"])
async def test_spotify(server, loop): resolver = Resolver(loop) resolver.add_to_cache(b'accounts.spotify.com', 443, server.https_host.encode(), 60, port=server.https_port) resolver.add_to_cache(b'api.spotify.com', 443, server.https_host.encode(), 60, port=server.https_port) ctx = ssl.create_default_context() ctx.check_hostname = False ctx.verify_mode = ssl.CERT_NONE spotify = Spotify(loop, '1234', '5678', 'http://example.com/callback', resolver=resolver, ssl=ctx) auth_url = spotify.authenticate_url(SpotifyScopes.USER_READ_PLAYBACK_STATE) auth_url = urllib.parse.urlsplit(auth_url) qs = urllib.parse.parse_qs(auth_url.query) assert_equal(auth_url.scheme, 'https') assert_equal(auth_url.netloc, 'accounts.spotify.com') assert_equal(auth_url.path, '/authorize') assert_equal(qs['scope'][0], SpotifyScopes.USER_READ_PLAYBACK_STATE) assert_equal(qs['redirect_uri'][0], 'http://example.com/callback') spotify.register_auth_code('newuser', ACCESS_CODE) response = await spotify.api(b'GET', b'/me/player/devices', identifier='newuser', ssl=ctx) assert_equal(response.json()['devices'][0]['name'], 'Kitchen') assert_equal(response.json()['devices'][1]['name'], 'Living Room')