Exemplo n.º 1
0
def test_login_customer(client):
    """
    Test admin add account feature: logging in as customer.

    :param client: Flask app client
    :type client: Flask app instance
    """
    client.get('/logout')
    response = client.post('/login',
                           data=dict(username="******", password="******"),
                           follow_redirects=True)

    assert b'Let\'s book you a car!' in response.data
Exemplo n.º 2
0
def test_login_as_manager(client):
    """
    Test admin add account feature: logging in as manager.

    :param client: Flask app client
    :type client: Flask app instance
    """
    client.get('/logout')
    response = client.post('/login',
                           data=dict(username="******", password="******"),
                           follow_redirects=True)

    assert b'Welcome manager!' in response.data
Exemplo n.º 3
0
def test_resolve_issue1(client):
    """
    Resolve the first issue

    :param client: Flask app client
    :type client: Flask app instance
    """

    client.get(ISSUE_API_URL + '/resolve/1')
    response = client.get(ISSUE_API_URL + '/view/1')

    # correct issue being resolved
    assert b'<td>Resolved</td>' in response.data
Exemplo n.º 4
0
def test_unauthorised(client):
    """
    Test unauthorised access to auth-secured pages when not logged in

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/myinfo')
    assert b'Unauthorised' in response.data
    assert response.status_code == HTTPStatus.UNAUTHORIZED
    response = client.get('/mybookings')
    assert b'Unauthorised' in response.data
    assert response.status_code == HTTPStatus.UNAUTHORIZED
Exemplo n.º 5
0
def test_login_as_admin(client):
    """
    Test logging in as admin.

    :param client: Flask app client
    :type client: Flask app instance
    """
    client.get('/logout')
    response = client.post('/login',
                           data=dict(username="******", password="******"),
                           follow_redirects=True)

    assert b'Welcome example!' in response.data
Exemplo n.º 6
0
def test_login_deleted_admin(client):
    """
    Test admin delete account feature: logging in as a deleted admin.

    :param client: Flask app client
    :type client: Flask app instance
    """
    client.get('/logout')
    response = client.post('/login',
                           data=dict(username="******", password="******"),
                           follow_redirects=True)

    assert b'User not found!' in response.data
Exemplo n.º 7
0
def test_delete_admin_self(client):
    """
    Test admin delete account feature: deleting admin oneself (shouldn't work)

    :param client: Flask app client
    :type client: Flask app instance
    """
    client.get('/logout')
    response = client.post('/login',
                           data=dict(username="******", password="******"),
                           follow_redirects=True)
    response = client.get('/users/remove/1')

    assert b'<td>1</td>' in response.data
    assert b'example' in response.data
Exemplo n.º 8
0
def test_delete_manager(client):
    """
    Test admin delete account feature: deleting a manager.

    :param client: Flask app client
    :type client: Flask app instance
    """
    client.get('/logout')
    response = client.post('/login',
                           data=dict(username="******", password="******"),
                           follow_redirects=True)
    response = client.get('/users/remove/4')

    assert b'<td>4</td>' not in response.data
    assert b'manager' not in response.data
Exemplo n.º 9
0
def test_admin_review_bookings_render(client):
    """
    Test admin logged in and dashboard renders Review Bookings button.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')
    assert b'Review bookings' in response.data
Exemplo n.º 10
0
def test_manager_daily_active_user_graph_render(client):
    """
    Test manager daily active users graph render.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')
    assert b'<iframe name="daily_active_user_graph"' in response.data
Exemplo n.º 11
0
def test_logged_in_admin(client):
    """
    Test admin logged in and dashboard render after test_setup registration.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')
    assert b'Welcome example!' in response.data
Exemplo n.º 12
0
def test_manager_total_bookings_car_graph_render(client):
    """
    Test manager total bookings of all cars graph render.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')
    assert b'<iframe name="total_bookings_car_graph"' in response.data
Exemplo n.º 13
0
def test_manager_dashboard_render(client):
    """
    Test manager dashboard render.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')
    assert b'Welcome manager!' in response.data
Exemplo n.º 14
0
def test_admin_manage_users_render(client):
    """
    Test admin logged in and dashboard renders Manage Users button.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')
    assert b'Manage users' in response.data
Exemplo n.º 15
0
def test_render_register(client):
    """
    Route renders register.html when not logged in

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/register')
    assert b'Register' in response.data
Exemplo n.º 16
0
def test_render_index(client):
    """
    Route renders index.html when not logged in

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')
    assert b'Welcome to Car Share System!' in response.data
Exemplo n.º 17
0
def test_admin_add_user_page(client):
    """
    Test add user page render for admin.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get(USER_MANAGEMENT_API_URL + '/add')
    assert b'Add User' in response.data
Exemplo n.º 18
0
def test_render_login(client):
    """
    Route renders login.html when not logged in

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/login')
    assert b'Login' in response.data
Exemplo n.º 19
0
def test_logout(client):
    """
    Test logout feature

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/logout', follow_redirects=True)
    assert b'Welcome to Car Share System!' in response.data
Exemplo n.º 20
0
def test_admin_view_issues_render(client):
    """
    Test admin logged in and dashboard renders View Issues button.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')
    assert b'View issues' in response.data
Exemplo n.º 21
0
def test_admin_search_user_template(client):
    """
    Test admin search user template.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get(USER_MANAGEMENT_API_URL + '/search')
    assert b'<td>1</td>' in response.data
    assert b'alex' in response.data
Exemplo n.º 22
0
def test_engineer_dashboard_render(client):
    """
    Test engineer dashboard render.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')

    assert b'Scan this QR code with Agent PI to log in.' in response.data
Exemplo n.º 23
0
def test_404_not_found(client):
    """
    Route to route that doesn't exist, renders the 404 template.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/asdfadfasdf')
    assert b'404 Not Found' in response.data
    assert response.status_code == HTTPStatus.NOT_FOUND
Exemplo n.º 24
0
def test_dashboard_route(client):
    """
    Test dashboard route after logged in

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')

    assert b'Let\'s book you a car!' in response.data
Exemplo n.º 25
0
def test_view_first_car(client):
    """
    Test viewing details of the first car.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get(CAR_MANAGEMENT_API_URL + '/1')

    assert b'LOL123' in response.data
Exemplo n.º 26
0
def test_remove_car(client):
    """
    Test removing the first car added

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get(CAR_MANAGEMENT_API_URL + '/1/remove')

    assert b'AHA456' not in response.data
Exemplo n.º 27
0
def test_engineer_dashboard_qr_render(client):
    """
    Test engineer QR code render.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')

    assert b'<img src=static/qr/' in response.data
Exemplo n.º 28
0
def test_engineer_your_issues_render(client):
    """
    Test engineer Your Issues button render.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get('/')

    assert b'Your issues' in response.data
Exemplo n.º 29
0
def test_view_all_cars(client):
    """
    Test view all cars: should contain the 2 cars added in the previous test.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get(CAR_MANAGEMENT_API_URL)

    assert b'LOL123' in response.data
    assert b'BAB111' in response.data
Exemplo n.º 30
0
def test_engineer_view_issue(client):
    """
    View issue.

    :param client: Flask app client
    :type client: Flask app instance
    """
    response = client.get(ISSUE_API_URL + '/view/2')

    assert b'<td>2</td>' in response.data
    assert b'<td>Pending</td>' in response.data