Esempio n. 1
0
def test_validated(route, channels, users, exp_result):
    request = MagicMock(user_id='U1',
                        channel='C1',
                        text='hello',
                        **{'is_bot_message.return_value': False})
    r = Route(route=route, handler=my_handler, channels=channels, users=users)
    assert r.validated(request) is exp_result
Esempio n. 2
0
def test_validate_correct_message(route, msg, exp_result, info, match):
    route = Route(route, my_handler)
    request = MagicMock(user_id='U1',
                        channel='C1',
                        text=msg,
                        match_info={},
                        info=None)
    assert route.validate_message(request) is exp_result
    assert request.match_info == match
    assert request.info == info
Esempio n. 3
0
def test_add_routes():
    # Refresh singleton instance
    RoutersTable.instance = None

    my_routes = [
        Route('path1', lambda x: x),
        Route('path2', lambda x: x, channels=['C1'], users=['U1'])
    ]
    t = RoutersTable()
    t.add_routes(my_routes)
    assert len(t.routes) == 2
    assert all([isinstance(r, Route) for r in t.routes])
    assert t.routes == set(my_routes)
Esempio n. 4
0
def test_app_add_routes():
    # Refresh singleton instance
    RoutersTable.instance = None

    app = Application(TOKEN)

    def say_hello(request):
        return Response(request, text='Hi!')

    def do_deploy(request):
        current_app = request.match_info['app']
        return Response(request, text=f'Start deploy {current_app}')

    app.add_routes([
        Route('deploy {app:w}', do_deploy),
        Route('hello', say_hello),
    ])
    assert len(app._routers) == 2
    assert all([isinstance(r, Route) for r in app._routers.table.routes])
    assert all([
        r.handler in (do_deploy, say_hello) for r in app._routers.table.routes
    ])
Esempio n. 5
0
def test_validate_channels_with_subscribers(channel, exp_result):
    r = Route('path', my_handler, ['#general'])
    assert r.validate_channels(MagicMock(channel=channel)) is exp_result
Esempio n. 6
0
def test_validate_users_bot_with_subscribers():
    r = Route('path', my_handler, ['#general'], users=['U1'])
    request = MagicMock(user_id='U1', **{'is_bot_message.return_value': True})
    assert r.validate_users(request) is False
Esempio n. 7
0
def test_validate_users_without_subscribers(user, exp_result, subscribers):
    r = Route('path', my_handler, ['#general'], subscribers)
    request = MagicMock(user_id=user, **{'is_bot_message.return_value': False})
    assert r.validate_users(request) is exp_result
Esempio n. 8
0
def test_init_require_attributes(params):
    with pytest.raises(TypeError):
        Route(**params)
Esempio n. 9
0
def test_init_with_short_attributes():
    r = Route('path', my_handler)
    assert r.route == 'path'
    assert r.handler == my_handler
    assert r.channels is None
    assert r.users is None
Esempio n. 10
0
def test_init_with_full_attributes():
    r = Route('path', my_handler, ['#general'], ['U1'])
    assert r.route == 'path'
    assert r.handler == my_handler
    assert r.channels == ['#general']
    assert r.users == ['U1']
Esempio n. 11
0
def test_route_str():
    r = Route('path', my_handler, ['#general'], ['U1'])
    assert str(
        r
    ) == f"<Route 'path' handler={my_handler} channels=['#general'] users=['U1']>"
Esempio n. 12
0
def test_validate_channels_without_subscribers(channel, exp_result,
                                               subscribers):
    r = Route('path', my_handler, subscribers)
    assert r.validate_channels(MagicMock(channel=channel)) is exp_result