Ejemplo n.º 1
0
def test_files():
    app = XWeb()

    @app.post('/files')
    def files():
        return request.files

    client = webtest.TestApp(app)
    resp = client.post('/files')
    assert resp.text == '{}'
Ejemplo n.º 2
0
def test_response_dict():
    app = XWeb()

    @app.route('/hello')
    def hello_route():
        return {'name': 'xweb'}

    client = webtest.TestApp(app)
    resp = client.get('/hello')
    assert resp.text == json.dumps({'name': 'xweb'})
Ejemplo n.º 3
0
def test_query():
    app = XWeb()

    @app.get('/query')
    def query():
        return request.query

    client = webtest.TestApp(app)
    resp = client.get('/query/?a=1')
    assert resp.json.get('a') == '1'
Ejemplo n.º 4
0
def test_invalid_json():
    app = XWeb()

    @app.post('/')
    def handler():
        return request.json

    client = webtest.TestApp(app)
    resp = client.post('/', params="dasdas")
    assert resp.text == '{}'
Ejemplo n.º 5
0
def test_response_string():
    app = XWeb()

    @app.route('/hello')
    def hello_route():
        return "hello"

    client = webtest.TestApp(app)
    resp = client.get('/hello')
    assert resp.text == "hello"
Ejemplo n.º 6
0
def test_get():
    app = XWeb()

    @app.get('/')
    def handler():
        return 'Hello'

    client = webtest.TestApp(app)
    resp = client.get('/')
    assert resp.text == 'Hello'
Ejemplo n.º 7
0
def test_invalid_response():
    app = XWeb()

    @app.route('/')
    def handler():
        raise HTTPError(500)

    client = webtest.TestApp(app)
    resp = client.get('/', expect_errors=True)
    assert resp.status_int == 500
    assert resp.text == "Internal Server Error"
Ejemplo n.º 8
0
def test_response_header():
    app = XWeb()

    @app.route('/hello')
    def hello_route():
        response.headers['spam'] = '1'
        return {'name': 'xweb'}

    client = webtest.TestApp(app)
    resp = client.get('/hello')
    assert resp.headers.get('spam') == '1'
Ejemplo n.º 9
0
def test_non_str_headers():
    app = XWeb()

    @app.route('/')
    def handler():
        response.headers["answer"] = 42
        return 'Hello'

    client = webtest.TestApp(app)
    resp = client.get('/')
    assert resp.headers.get('answer') == '42'
Ejemplo n.º 10
0
def test_headers():
    app = XWeb()

    @app.route('/')
    def handler():
        response.headers["spam"] = "great"
        return 'Hello'

    client = webtest.TestApp(app)
    resp = client.get('/')
    assert resp.headers.get('spam') == 'great'
Ejemplo n.º 11
0
def test_blueprint():
    from xweb.application import XWeb
    from xweb.blueprint import Blueprint

    user = Blueprint('/users/')

    @user.route('/')
    def user_list():
        return 'user'

    app = XWeb()

    @app.route('/')
    def hello():
        return 'app'

    app.register_blueprint(user)

    client = webtest.TestApp(app)
    assert client.get('/').text == 'app'
    assert client.get('/users/').text == 'user'
Ejemplo n.º 12
0
def test_response_body_not_a_string():
    app = XWeb()

    random_num = choice(range(1000))

    @app.route('/hello')
    def hello_route():
        return random_num

    client = webtest.TestApp(app)
    resp = client.get('/hello')
    assert resp.text == str(random_num)
Ejemplo n.º 13
0
def test_post_json():
    app = XWeb()

    @app.route('/', methods=['POST'])
    def handler():
        return request.json

    payload = {'test': 'OK'}
    headers = {'content-type': 'application/json'}
    client = webtest.TestApp(app)
    resp = client.post_json('/', params=payload, headers=headers)
    assert resp.json.get('test') == 'OK'
Ejemplo n.º 14
0
def test_head():
    app = XWeb()

    @app.put('/head')
    def handler():
        return 'OK'

    client = webtest.TestApp(app)
    resp = client.put('/head')
    assert resp.text == 'OK'

    resp = client.get('/head', expect_errors=True)
    assert resp.status_int == 405
Ejemplo n.º 15
0
def test_post():
    app = XWeb()

    @app.post('/post')
    def handler():
        return request.forms

    client = webtest.TestApp(app)
    resp = client.post('/post', params={"name": "xweb"})
    assert resp.status_int == 200

    resp = client.get('/post', expect_errors=True)
    assert resp.status_int == 405
Ejemplo n.º 16
0
def test_slash():
    app = XWeb()

    @app.get('/get')
    def handler():
        return 'OK'

    client = webtest.TestApp(app)

    resp = client.get('/get')
    assert resp.text == 'OK'

    resp = client.get('/get/')
    assert resp.text == 'OK'
Ejemplo n.º 17
0
def test_get():
    app = XWeb()

    @app.get('/get')
    def handler():
        return 'OK'

    client = webtest.TestApp(app)
    resp = client.get('/get')
    assert resp.text == 'OK'
    assert resp.status_int == 200

    resp = client.post('/get', expect_errors=True)
    assert resp.status_int == 405
Ejemplo n.º 18
0
def test_exception():
    app = XWeb()

    @app.get('/exception')
    def post():
        abort(500)
        return "OK"

    @app.exception(500)
    def exception():
        response.body = "FAIL"

    client = webtest.TestApp(app)
    resp = client.get('/exception', expect_errors=True)
    assert resp.text == "FAIL"
Ejemplo n.º 19
0
def test_middleware_override_response():
    app = XWeb()

    @app.middleware('response')
    def process_response():
        return 'OK'

    @app.route('/hello')
    def hello_route():
        return 'FAIL'

    client = webtest.TestApp(app)

    resp = client.get('/hello')
    assert resp.text == 'OK'
Ejemplo n.º 20
0
def test_dynamic_route():
    app = XWeb()

    results = []

    @app.route('/folder/:name/:age')
    def handler(name, age):
        results.append(name)
        results.append(age)
        return 'OK'

    client = webtest.TestApp(app)
    resp = client.get('/folder/test123/23')
    assert resp.text == 'OK'
    assert results[0] == 'test123'
    assert results[1] == '23'
Ejemplo n.º 21
0
def test_json():
    app = XWeb()

    @app.route('/')
    def handler():
        return {"test": True}

    client = webtest.TestApp(app)
    resp = client.get('/')
    try:
        results = json.loads(resp.text)
    except:
        raise ValueError(
            "Expected JSON response but got '{}'".format(response))

    assert results.get('test') == True
Ejemplo n.º 22
0
def test_post_form_multipart_form_data():
    app = XWeb()

    @app.route('/', methods=['POST'])
    def handler():
        return request.forms

    payload = '------xweb\r\n' \
              'Content-Disposition: form-data; name="test"\r\n' \
              '\r\n' \
              'OK\r\n' \
              '------xweb--\r\n'
    headers = {'content-type': 'multipart/form-data; boundary=----xweb'}
    client = webtest.TestApp(app)
    resp = client.post('/', params=payload, headers=headers)
    assert resp.json.get('test') == 'OK'
Ejemplo n.º 23
0
def test_static_routes():
    app = XWeb()

    @app.route('/test')
    def handler1():
        return 'OK1'

    @app.route('/pizazz')
    def handler2():
        return 'OK2'

    client = webtest.TestApp(app)
    resp = client.get('/test')
    assert resp.text == 'OK1'

    resp = client.get('/pizazz')
    assert resp.text == 'OK2'
Ejemplo n.º 24
0
def test_404_exception():
    app = XWeb()

    @app.get('/')
    def request_abort():
        return "OK"

    @app.exception(404)
    def exception():
        response.body = "FAIL"

    client = webtest.TestApp(app)
    resp = client.get('/')
    assert resp.text == "OK"

    resp = client.get('/no', expect_errors=True)
    assert resp.text == "FAIL"
Ejemplo n.º 25
0
def test_middleware_request():
    app = XWeb()
    results = []

    @app.middleware('request')
    def handler():
        results.append(request)

    @app.route('/hello')
    def hello_route():
        return 'OK'

    client = webtest.TestApp(app)

    resp = client.get('/hello')
    assert resp.text == 'OK'
    assert results[0] is request
Ejemplo n.º 26
0
def test_middleware_exception():
    app = XWeb()

    @app.middleware('request')
    def request_abort():
        abort(405)
        return "OK"

    @app.get('/')
    def request_abort():
        return "OK"

    @app.exception(405)
    def exception():
        response.body = "FAIL"

    client = webtest.TestApp(app)
    resp = client.get('/', expect_errors=True)
    assert resp.text == "FAIL"
Ejemplo n.º 27
0
def test_route_duplicate():
    app = XWeb()

    with pytest.raises(RouteError):
        @app.route('/test')
        def handler1():
            pass

        @app.route('/test')
        def handler2():
            pass

    with pytest.raises(RouteError):
        @app.route('/test/:dynamic/')
        def handler1():
            pass

        @app.route('/test/:dynamic/')
        def handler2():
            pass
Ejemplo n.º 28
0
def test_middleware_order():
    app = XWeb()

    order = []

    @app.middleware('request')
    def request1():
        order.append(1)

    @app.middleware('request')
    def request2():
        order.append(2)

    @app.middleware('request')
    def request3():
        order.append(3)

    @app.middleware('response')
    def response1():
        order.append(4)

    @app.middleware('response')
    def response2():
        order.append(5)

    @app.middleware('response')
    def response3():
        order.append(6)

    @app.route('/hello')
    def handler():
        return 'OK'

    client = webtest.TestApp(app)
    resp = client.get('/hello')

    assert resp.status_int == 200
    assert order == [1, 2, 3, 4, 5, 6]
Ejemplo n.º 29
0
from user import user
from xweb.application import XWeb

app = XWeb()


@app.route('/')
def hello():
    return 'hello world!'


app.register_blueprint(user)
app.listen(3000)
Ejemplo n.º 30
0
from xweb.application import XWeb
from xweb.globals import request

app = XWeb()


@app.middleware('request')
def print_on_request1():
    print("I print when a request is received by the server1")


@app.middleware('request')
def print_on_request2():
    print("I print when a request is received by the server2")


@app.middleware('response')
def print_on_response1():
    print("I print when a response is returned by the server1")


@app.middleware('response')
def print_on_response2():
    print("I print when a response is returned by the server2")


@app.route('/')
def hello():
    return 'hello world!'