Пример #1
0
def test_get_currency():
    app = Flask(__name__)
    configure_routes(app)
    app.testing = True
    client = app.test_client()

    # Get All currencies to get the first one
    url_currencies = '/api/currencies'
    response_currencies = client.get(url_currencies)
    result_currencies = json.loads(response_currencies.get_data(as_text=True))

    first_currency = None
    if "data" in result_currencies:
        first_currency = result_currencies["data"][0]

    if first_currency and "symbol_text" in first_currency:

        url = '/api/currencies/%s' % first_currency["symbol_text"]

        response = client.get(url)
        result = json.loads(response.get_data(as_text=True))

        assert response.status_code == 200
        assert ("status" in result) == True
        assert ("data" in result and "symbol_text" in result["data"]
                and result["data"]["symbol_text"]
                == first_currency["symbol_text"]) == True

    else:
        assert False
Пример #2
0
def test_sort_false():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = "/api/posts?tags=science,tech&sortBy=hghgfk"
    response = client.get(url)
    assert response.status_code == 400
    assert b'{"error": "Invalid sortBy parameter"}\n'
Пример #3
0
def test_route_one():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = "/api/ping"
    response = client.get(url)
    assert response.get_data() == b'{"success":true}\n'
    assert response.status_code == 200
Пример #4
0
def test_dir_false():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = "/api/posts?tags=science,tech&sortBy=popularity&direction=ghggh"
    response = client.get(url)
    assert response.status_code == 400
    assert b'{"error": "Invalid direction parameter"}\n'
Пример #5
0
def test_bird_route_get_wrong_data_type():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/birds'

    response = client.get(url, query_string={'limit': "Hello"})
    assert response.status_code == 500
Пример #6
0
def test_no_tags():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = "/api/posts"
    response = client.get(url)
    assert response.status_code == 400
    assert response.get_data() == b'{"error":"Missing tags parameter"}\n'
def base_route():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = "/"

    response = client.get(url)
    assert response.get_data() == b'{"message":"Hello World"}\n'
    assert response.status_code == 200
Пример #8
0
def test_bird_route_get_empty_params():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/birds'

    response = client.get(url, query_string={'limit': None})
    assert response.status_code == 200
    assert len(response.get_data()) > 0
Пример #9
0
def test_bird_route_get_limit():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/birds'

    response = client.get(url, query_string={'limit': 2})
    assert response.status_code == 200
    assert len(response.get_json()) == 2
Пример #10
0
def test_bird_route_get_basic():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/birds'

    response = client.get(url)
    assert response.status_code == 200
    assert len(response.get_data()) > 0
Пример #11
0
def test_version_route():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/version'

    response = client.get(url)
    assert response.get_data() == b'Birds Service. Version 0.1'
    assert response.status_code == 200
Пример #12
0
def test_base_route():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/'

    response = client.get(url)
    assert response.get_data() == b'Hello, World'
    assert response.status_code == 200
Пример #13
0
def test_2_tags():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = "/api/posts?tags=science,tech"
    response = client.get(url)
    assert response.status_code == 200
    assert response.json["posts"]
    for p in response.json["posts"]:
        assert "science" in p["tags"] or "tech" in p["tags"]
Пример #14
0
def test_desc():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = "/api/posts?tags=science,tech&sortBy=popularity&direction=desc"
    response = client.get(url)
    previous = math.inf
    assert response.status_code == 200
    for p in response.json["posts"]:
        assert p['popularity'] <= previous
        previous = p['popularity']
Пример #15
0
def test_get_currency_fail():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()

    url = '/api/currencies/any'

    response = client.get(url)
    result = json.loads(response.get_data(as_text=True))

    assert response.status_code == 200
    assert ("status" in result and result["status"] == False) == True
    assert ("data" in result) == True
Пример #16
0
def test_bird_route_get_offset():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/birds'

    response_full = client.get(url)
    data1 = response_full.get_json()
    res1 = data1[5]
    response = client.get(url, query_string={'offset': 5})
    data2 = response.get_json()
    res2 = data2[0]
    assert response.status_code == 200
    assert res1 == res2
Пример #17
0
def test_bird_route_get_sorted():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/birds'

    response = client.get(url,
                          query_string={
                              'attribute': 'name',
                              'order': 'asc'
                          })
    assert response.status_code == 200
    attr_list = [item['name'] for item in response.get_json()]
    assert attr_list == sorted(attr_list)
Пример #18
0
def test_bird_route_post_inconsistent_data():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/birds'

    mock_request_data = {
        "body_length": 1000,
        "name": "test_bird",
        "wingspan": 1000
    }

    response = client.post(url, json=mock_request_data)
    assert response.status_code == 400
Пример #19
0
def test_post_route__failure__bad_request():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/post/test'

    mock_request_headers = {'authorization-sha256': '123'}

    mock_request_data = {}

    response = client.post(url,
                           data=json.dumps(mock_request_data),
                           headers=mock_request_headers)
    assert response.status_code == 400
Пример #20
0
def test_bird_route_post_wrong_data_type():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/birds'

    mock_request_data = {
        "body_length": "WRONG_DATA_TYPE",
        "color": "red & white",
        "name": "test_bird",
        "species": "pigeon",
        "wingspan": 1000
    }

    response = client.post(url, json=mock_request_data)
    assert response.status_code == 400
Пример #21
0
def test_bird_route_post_success():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/birds'
    new_bird = ''.join(random.choice(string.ascii_letters) for i in range(10))

    mock_request_data = {
        "body_length": 1000,
        "color": "red & white",
        "name": new_bird,
        "species": "pigeon",
        "wingspan": 1000
    }

    response = client.post(url, json=mock_request_data)
    assert response.status_code == 200
Пример #22
0
def test_post_route__failure__unauthorized():
    app = Flask(__name__)
    configure_routes(app)
    client = app.test_client()
    url = '/post/test'

    mock_request_headers = {}

    mock_request_data = {
        'request_id': '123',
        'payload': {
            'py': 'pi',
            'java': 'script'
        }
    }

    response = client.post(url,
                           data=json.dumps(mock_request_data),
                           headers=mock_request_headers)
    assert response.status_code == 401
Пример #23
0
def client():
    app = Flask(__name__)
    configure_routes(app)
    return app.test_client()
Пример #24
0
from flask import Flask
from handlers.routes import configure_routes

app = Flask(__name__)

configure_routes(app)

if __name__ == "__main__":
    app.run()
Пример #25
0
def app():
    app = Flask(__name__, template_folder='templates')
    configure_routes(app)
    client = app.test_client()
    app.debug = True
    return client
Пример #26
0
"""
Flask App main file

Author: Diego Arango - @darango91
"""

from flask import Flask
from flask_pymongo import PyMongo

from constants import MONGO_DB_CONNECTION
from handlers.routes import configure_routes

app = Flask(__name__)

app.config["MONGO_URI"] = MONGO_DB_CONNECTION
mongo = PyMongo(app)

configure_routes(app, mongo)

if __name__ == "__main__":
    app.run(debug=True)