Exemplo n.º 1
0
def test_mine_block(client):
    client.get('get_chain')
    client.get('mine_block')
    response = client.get('get_chain')

    data = json.loads(response.get_data(as_text=True))
    chain = data['chain']
    length = data['length']

    assert response.status_code == 200
    assert len(chain) == length
    assert chain[1]['index'] == 1
    assert type(chain[1]['nonce']) == int
    assert chain[1]['prev_hash'] == chain[0]['hash']
    assert chain[1]['transactions'] == []
Exemplo n.º 2
0
def test_logged_user_can_access_logout(user, client, configed_app, login):
    with configed_app.test_request_context():
        response = client.get("/logout", follow_redirects=False)

    assert (
        response.status_code == 302
    ), f"Logged user does not have access logout. Status code: {response.status_code}"
Exemplo n.º 3
0
def test_get_unverified(client):
    response = client.get('/get_unverified_transactions')
    assert response.status_code == 200

    data = json.loads(response.get_data(as_text=True))

    assert data['Transactions'] == []
Exemplo n.º 4
0
def test_logged_user_can_access_post_new(client, configed_app, login):
    with configed_app.test_request_context():
        response = client.get("/post/new", follow_redirects=False)

    assert (
        response.status_code == 200
    ), f"Logged user does not have access create new post. Status code: {response.status_code}"
Exemplo n.º 5
0
def test_logged_user_can_access_user_posts(client, configed_app, login):
    with configed_app.test_request_context():
        response = client.get("/user/test1", follow_redirects=False)

    assert (
        response.status_code == 200
    ), f"Logged user does not have access user's posts. Status code: {response.status_code}"
def test_logout_user_can_not_access_post_new(client, configed_app, post):
    with configed_app.test_request_context():
        response = client.get("/post/new", follow_redirects=False)

    assert (
        response.status_code == 403
    ), f"Logged out user have access to new post. Status code: {response.status_code}"
def test_logout_user_can_access_about(client, configed_app, post):
    with configed_app.test_request_context():
        response = client.get("/about", follow_redirects=False)

    assert (
        response.status_code == 200
    ), f"Logged out user does not have access to about page. Status code: {response.status_code}"
Exemplo n.º 8
0
def test_logged_user_can_access_home_page(client, configed_app, login):
    with configed_app.test_request_context():
        response = client.get("/home", follow_redirects=False)

    assert (
        response.status_code == 200
    ), f"Logged user does not have access home page. Status code: {response.status_code}"
def test_logout_user_can_access_post_id(client, configed_app, post):
    with configed_app.test_request_context():
        id = str(post.getId())
        response = client.get("/post/" + id, follow_redirects=False)

    assert (
        response.status_code == 200
    ), f"Logged out user does not have access to post id. Status code: {response.status_code}"
Exemplo n.º 10
0
def test_notifications_retrieval_range(client):
    user_id = random.randint(0, 999999)
    req = random_notification_insert_values(20, user_id)
    notifications.insert(req)

    res = client.get('/notifications/' + str(user_id) + '?range=10_20')
    assert res.status_code == 200
    assert len(res.json["notifications"]) == 10
Exemplo n.º 11
0
def test_default(api, client):
    response_text = "Hello from local host"

    @api.route("/")
    def default(request, response):
        response.text = response_text

    assert client.get("http://testserver/").text == response_text
Exemplo n.º 12
0
def test_delete_song(client):
    song = new_song_from_api(client)
    res = client.delete('/songs/' + str(song.id))

    assert res.status_code == 204

    res = client.get('/songs/' + str(song.id))
    assert res.status_code == 404
Exemplo n.º 13
0
def test_logged_user_can_access_post_update(user, client, configed_app, login, post):
    with configed_app.test_request_context():
        id = str(post.getId())
        response = client.get("/post/" + id + "/update", follow_redirects=False)

    assert (
        response.status_code == 200
    ), f"Logged user does not have access update. Status code: {response.status_code}"
def test_logout_user_can_not_access_post_delete(client, configed_app, post):
    with configed_app.test_request_context():
        id = str(post.getId())
        response = client.get("/post/" + id + "/delete",
                              follow_redirects=False)

    assert (
        response.status_code == 403
    ), f"Logged out user have access to delete post. Status code: {response.status_code}"
Exemplo n.º 15
0
def test_notifications_retrieval_no_range(client):
    user_id = random.randint(0, 999999)
    req = random_notification_insert_values(40, user_id)
    notifications.insert(req)

    res = client.get('/notifications/' + str(user_id))
    assert res.status_code == 200
    assert len(res.json["notifications"]) == 20
    assert res.headers['Content-Range'] == '0-20/40'
Exemplo n.º 16
0
def test_home(api, client):
    response_text = "Django like way to add routes"

    def home(request, response):
        response.text = response_text

    api.add_route("/home", home)

    assert client.get("http://testserver/home").text == response_text
Exemplo n.º 17
0
def test_notifications_retrieval_range_limited(client):
    user_id = random.randint(0, 999999)
    req = random_notification_insert_values(15, user_id)
    notifications.insert(req)

    res = client.get('/notifications/' + str(user_id) + '?range=10_20')
    assert res.status_code == 200
    assert len(res.json["notifications"]) == 5
    assert res.headers['Content-Range'] == '10-15/15'
Exemplo n.º 18
0
def test_add_transaction(client, transactions):
    response = client.post('add_transaction', json=transactions)
    assert response.status_code == 201

    response = client.get('/get_unverified_transactions')
    assert response.status_code == 200

    data = json.loads(response.get_data(as_text=True))

    assert data['Transactions'][0] == transactions['transaction']
Exemplo n.º 19
0
def test_custom_exception_handler(api, client):
    def on_exception(request, response, exception):
        response.text = "AttributeErrorOccured"

    api.add_exception_handler(on_exception)

    @api.route("/")
    def index(request, response):
        raise AttributeError()

    response = client.get("http://testserver/")

    assert response.text == "AttributeErrorOccured"
Exemplo n.º 20
0
def test_get_chain(client):
    response = client.get('/get_chain')

    data = json.loads(response.get_data(as_text=True))
    chain = data['chain']
    length = data['length']

    assert response.status_code == 200
    assert len(chain) == length
    assert chain[0]['index'] == 0
    assert chain[0]['nonce'] == 0
    assert chain[0]['prev_hash'] == '0'
    assert chain[0]['transactions'] == []
Exemplo n.º 21
0
def test_template(api, client):
    @api.route("/html")
    def html_handler(request, response):
        response.body = api.get_template("index.html",
                                         context={
                                             "title": "Some Title",
                                             "name": "Some Name"
                                         }).encode()

    response = client.get("http://testserver/html")

    assert "text/html" in response.headers["Content-Type"]
    assert "Some Title" in response.text
    assert "Some Name" in response.text
Exemplo n.º 22
0
def test_notifications_retrieval_daterange(client):
    user_id = random.randint(0, 999999)
    req = random_notification_insert_values(30, user_id)
    notifications.insert(req)

    dt = datetime.now()
    dt1 = dt.replace(year=dt.year + 1).date()
    dt2 = dt.replace(year=dt.year - 1).date()
    date_range = dt2.isoformat() + '_' + dt1.isoformat()

    res = client.get('/notifications/' + str(user_id) + '?date-range=' +
                     date_range)
    assert res.status_code == 200
    assert len(res.json["notifications"]) == 30
    assert res.headers['Content-Range'] == '*/30'
Exemplo n.º 23
0
def test_with_invalid_times(client, numeric_time):
    result = client.get("{}?numeric_time={}".format(api_path, numeric_time))
    body = result.json

    assert result.status_code == 400
    assert body["errorMessage"] is not None
Exemplo n.º 24
0
def test_404_returned_for_nonexistent_static_file(client):
    assert client.get(f"http://testserver/main.css").status_code == 404
Exemplo n.º 25
0
def test_default_404_response(client):
    response = client.get("http://testserver/doesnotexist")

    assert response.status_code == 404
    assert response.text == "Not found."
Exemplo n.º 26
0
def test_with_different_time_formats(client, numeric_time):
    result = client.get("{}?numeric_time={}".format(api_path, numeric_time))
    body = result.json
    assert result.status_code == 200
    assert body["humanTime"] == "One o'clock"
Exemplo n.º 27
0
def test_with_different_times(client, numeric_time, expected_result):
    result = client.get("{}?numeric_time={}".format(api_path, numeric_time))
    body = result.json
    assert result.status_code == 200
    assert body["humanTime"] == expected_result
Exemplo n.º 28
0
def test_with_no_time(client):
    with freeze_time("2020-08-26 15:00:00.000000"):
        result = client.get(api_path)
        body = result.json
        assert result.status_code == 200
        assert body["humanTime"] == "Three o'clock"
Exemplo n.º 29
0
def test_get_song(client):
    song = new_song_from_api(client)
    res = client.get('/songs/' + str(song.id))

    assert res.status_code == 200
    assert res.json["id"] == song.id
Exemplo n.º 30
0
def test_get_song_none(client):
    res = client.get('/songs/' + str(0))

    assert res.status_code == 404