def test_rest_server_stop_stopped_is_ok():
    server = RestServer()
    assert server is not None

    success = yield server.stop()
    assert success
    assert not server.is_running
def test_port_in_use_already_opened():
    # Open server 1 on default port
    server1 = RestServer()
    assert server1 is not None
    success = yield server1.start()
    assert success, 'Server failed to start'
    assert server1.is_running

    # Now try to open another server on the same default port and interface(s)
    server2 = RestServer()
    assert server2 is not None

    with pytest.raises(CannotListenError) as ex_info:
        success = yield server2.start()
        assert not success, 'Server should not have started'
        assert not server2.is_running

        # Should be a socket error
        assert ex_info is not None
        assert ex_info.socketError is not None

    # server 1 should be okay
    assert server1.is_running

    # stop server 1 and try server 2 again
    success = yield server1.stop()
    assert success
    assert not server1.is_running

    success = yield server2.start()
    assert success
    assert server2.is_running
    yield server2.stop()
def test_rest_server_start_stop_with_test_api():
    server = RestServer(MyRestAPI())
    assert server is not None

    success = yield server.start()
    assert success, 'Server failed to start'
    assert server.is_running

    success = yield server.stop()
    assert success, 'Server failed to start'
    assert not server.is_running
def test_rest_server_start_started_is_ok():
    server = RestServer()
    assert server is not None

    success = yield server.start()
    assert success, 'Server failed to start'
    assert server.is_running

    success = yield server.start()
    assert success, 'Server failed to start'
    assert server.is_running
Exemple #5
0
def test_open_server():
    server = RestServer(access_config=OpenAccessConfig())
    d = server.start()

    def return_server(results, srv):
        return srv if results else None

    def failed(reason):
        return reason

    d.addCallback(return_server, server)
    d.addErrback(failed)
    yield pytest_twisted.blockon(d)

    d = server.stop()
    pytest_twisted.blockon(d)
def test_rest_server_defaults():
    server = RestServer()
    assert server is not None

    assert server.interface == DEFAULT_INTERFACE
    assert server.port == DEFAULT_PORT
    assert server.default_access_control.access_method == DEFAULT_ACCESS_CONTROL

    # Not running until started
    assert not server.is_running
Exemple #7
0
def test_basic_plain_text_server():
    checker = PasswordDictChecker(_plaintext_cfg['users'],
                                  _plaintext_cfg['passwords'])
    config = BasicAccessConfig(checker)
    server = RestServer(access_config=config)
    d = server.start()

    def return_server(results, srv):
        return srv if results else None

    def failed(reason):
        return reason

    d.addCallback(return_server, server)
    d.addErrback(failed)
    yield pytest_twisted.blockon(d)

    d = server.stop()
    pytest_twisted.blockon(d)
def test_no_api_change_while_running():
    server = RestServer()
    assert server is not None
    success = yield server.start()

    assert success, 'Server failed to start'
    assert server.is_running

    with pytest.raises(ValueError) as ex_info:
        server.api = MyRestAPI()
        assert ex_info is not None

    assert (yield server.stop())
    server.api = MyRestAPI()

    assert isinstance(server.api, MyRestAPI)
Exemple #9
0
    elif config_type == '--basic':
        config = BasicAccessConfig(checker)

    elif config_type == '--digest':
        config = DigestAccessConfig(checker)

    # elif config_type == '--tls':
    #     config = TlsAccessConfig()
    #
    elif config_type == '--tls-srp':
        config = TlsSrpAccessConfig(checker)
    #
    # elif config_type == '--webtoken':
    #     config = WebTokenAccessConfig()
    #
    # elif config_type == '--oauth':
    #     config = TODOCanThisBeSupported()

    # Create and run the server
    server = RestServer(RestAPI(), access_config=config)
    server.start()

    # Register shutdown handler
    reactor.addSystemEventTrigger('before', 'shutdown', server.stop)  # pylint: disable=no-member

    # Start the test server
    reactor.run()  # pylint: disable=no-member

    # Here after reactor shutdown
    print(os.linesep + 'Done')