def test_not_logged_in_user(app, client): user1 = create_user("*****@*****.**", "password1") user2 = create_user("*****@*****.**", "password2") res = client.get("/users") assert b'<a href="/user/1">[email protected]</a>' in res.data assert b'<a href="/user/2">[email protected]</a>' in res.data assert res.status_code == 200
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_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_not_public_image(app, client): user = create_user() image1 = create_image('image1', "s3://path-to-image-1", user.user_id) image2 = create_image('image2', "s3://path-to-image-2", user.user_id, True) res = res = client.get(f"user/{user.user_id}") print(res.data) assert b'<img src="s3://path-to-image-1" width="200" height="150">' not in res.data assert b'<img src="s3://path-to-image-2" width="200" height="150">' 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_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_user_has_no_images(app, client): user = create_user() res = client.get(f"user/{user.user_id}") if not user.images: assert_flashes(client, "User doesn't have any images") assert_redirect(res, "http://localhost/")
def test_profile_success(app, client): user = create_user() image1 = create_image('image1', "s3://path-to-image-1", user.user_id, True) image2 = create_image('image2', "s3://path-to-image-2", user.user_id, True) res = res = client.get(f"user/{user.user_id}") assert res.status_code == 200