Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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
Esempio 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