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
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
示例#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
示例#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
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
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
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
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
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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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
示例#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