Ejemplo n.º 1
0
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)})
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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(), {})
Ejemplo n.º 4
0
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.')
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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]})
Ejemplo n.º 7
0
async def main(settings=None):
    widgets = WidgetServer('dashboard/widgets',
                           settings=settings,
                           resolver=Resolver(asyncio.get_event_loop(),
                                             ipv6=False))
    await widgets.start()
    return widgets
Ejemplo n.º 8
0
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"])
Ejemplo n.º 9
0
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')