def test_unpublish_success(app, client): user = create_user() image = create_image('image1', "s3://path-to-image-1", user.user_id) create_logged_in_user(client, user.user_id) res = client.put(f"/image/update/{image.image_id}", data={ "action" : 'unpublish'}) assert res.status_code == 200 assert b'{"status":"unpublished"}' in res.data
def test_delete_user_doesnt_match(app, client): user = create_user() image = create_image('image1', "s3://path-to-image-1", user.user_id) create_logged_in_user(client, 1234) res = client.post(f"/image/delete/{image.image_id}") assert_flashes(client, "Cannot modify other people's images") assert_redirect(res, "http://localhost/")
def test_how_many_images_empty(app, client): user = create_user() create_logged_in_user(client, 12345) image1 = create_image('image1', 's3://image-path-1', user.user_id) image2 = create_image('image2', 's3://image-path-2', user.user_id) res = client.get("/my-images") assert res.status_code == 200 assert b'image1' not in res.data assert b's3://image-path-1' not in res.data
def test_delete_image_success(app, client, mocker): # Creating no-op mocks for S3 / DB mocker.patch("server.delete_from_s3", return_value=True) mocker.patch("server.delete_from_db", return_value=True) user = create_user() image = create_image('image1', "s3://path-to-image-1", user.user_id) create_logged_in_user(client, user.user_id) res = client.post(f"/image/delete/{image.image_id}") assert_redirect(res, "http://localhost/my-images")
def test_process_upload_success(app, client, mocker): # Creating no-op mocks for S3 / DB mocker.patch( "server.save_image_to_s3", return_value=True) mocker.patch( "server.save_image_to_db", return_value=True) create_logged_in_user(client) file = create_file_data() res = client.post('/process-upload', data=dict(file=file), follow_redirects=False, content_type="multipart/form-data") assert_redirect(res, "http://localhost/my-images")
def test_my_images_success_all(app, client): # Have a user user = create_user() # User is logged in user print(user.user_id) create_logged_in_user(client, user.user_id) # User has images image1 = create_image('image1', 's3://image-path-1', user.user_id) image2 = create_image('image2', 's3://image-path-2', user.user_id) res = client.get("/my-images") assert res.status_code == 200 assert b'image1' in res.data assert b's3://image-path-1' in res.data assert b'image2' in res.data assert b's3://image-path-2' in res.data
def test_logged_in_user_not_in_list(app, client): user = create_user() logged_in_user = create_logged_in_user(client, user.user_id) user2 = create_user("*****@*****.**", "password2") user3 = create_user("*****@*****.**", "password3") res = client.get("/users") assert b'<a href="/user/1">[email protected]</a>' not in res.data assert b'<a href="/user/2">[email protected]</a>' in res.data assert b'<a href="/user/3">[email protected]</a>' in res.data
def test_logout_success(app, client): create_logged_in_user(client) res = client.get('/logout') assert_flashes(client, "Logout successful") assert_redirect(res, "http://localhost/")
def test_upload_success(app, client): create_logged_in_user(client) res = client.get("/upload") assert res.status_code == 200
def test_my_images_success_empty(app, client): create_logged_in_user(client) res = client.get("/my-images") assert res.status_code == 200
def test_image_id_doesnt_exist(app, client): create_logged_in_user(client) res = client.put(f"/image/update/10", data={"action" : 'publish'}) assert_flashes(client, "Image doesn't exist") assert_redirect(res, "http://localhost/")
def test_delete_image_id_doesnt_exist(app, client): create_logged_in_user(client) res = client.post(f"/image/delete/10") assert_flashes(client, "Image doesn't exist") assert_redirect(res, "http://localhost/")