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