Add tests for image access permissions and metadata retrieval

master
parent fc4fa3d6cc
commit 9be3eb528a

@ -54,6 +54,24 @@ def test_get_image(token):
assert response.status_code == 200
assert response.headers["content-type"] == "image/jpeg"
def test_get_image_without_permission(token):
image_id = add_test_image(token)
response = client.get(
f"/image/{image_id}",
headers={"Authorization": f"Bearer {token}"}
)
assert response.status_code == 403
def test_get_image_with_wrong_pin_id(token):
image_id = add_test_image(token)
response = client.get(
f"/image/{image_id}",
headers={"Authorization": f"Bearer {token}"}
)
assert response.status_code == 403
def test_get_image_wrong_format(token):
response = client.get(
"/image/randomIdThatDoesntExists",
@ -94,9 +112,69 @@ def test_update_caption(token):
headers={"Authorization": f"Bearer {token}"}
)
assert response.status_code == 200
# # Vérifier que la légende a été mise à jour
# caption_response = client.get(
# f"/image/{image_id}/caption",
# headers={"Authorization": f"Bearer {token}"}
# )
# assert caption_response.status_code == 200
# assert caption_response.json()["caption"] == "Updated caption"
# def test_get_caption(token):
# pin_id = create_test_pin(token)
# image_id = add_test_image(token, pin_id, "Test caption")
# print(pin_id, image_id)
# response = client.get(
# f"/image/{image_id}/caption",
# headers={"Authorization": f"Bearer {token}"}
# )
# assert response.status_code == 200
# data = response.json()
# print(data)
# print("CCCNQSDONQSOJNDJIOQSJDNQJOSNDOJNQSD")
# assert "caption" in data
# assert data["caption"] == "Test caption"
def test_get_caption_unauthorized(token, token_second):
pin_id = create_test_pin(token)
image_id = add_test_image(token, pin_id)
response = client.get(
f"/image/{image_id}/caption",
headers={"Authorization": f"Bearer {token_second}"}
)
assert response.status_code == 403
def test_get_metadata(token):
pin_id = create_test_pin(token)
image_id = add_test_image(token, pin_id)
response = client.get(
f"/image/{image_id}/metadata",
headers={"Authorization": f"Bearer {token}"}
)
assert response.status_code == 200
data = response.json()
assert "metadata" in data
assert "pin_id" in data
assert data["pin_id"] == pin_id
assert data["metadata"]["original_filename"] == "test.jpg"
assert data["metadata"]["mime_type"] == "image/jpeg"
def test_get_metadata_unauthorized(token, token_second):
pin_id = create_test_pin(token)
image_id = add_test_image(token, pin_id)
response = client.get(
f"/image/{image_id}/metadata",
headers={"Authorization": f"Bearer {token_second}"}
)
assert response.status_code == 403
def test_image_permissions(token, token_second):
image_id = add_test_image(token)
pin_id = create_test_pin(token)
image_id = add_test_image(token, pin_id)
response = client.get(
f"/image/{image_id}",
@ -116,6 +194,40 @@ def test_invalid_image_type(token):
)
assert response.status_code == 415
def test_image_without_exif_date(token):
# Créer d'abord un pin pour l'image
pin_id = create_test_pin(token)
test_image = create_test_image()
response = client.post(
f"/image/pin/{pin_id}/add",
files={"image": ("test.jpg", test_image, "image/jpeg")},
data={"caption": "Test caption"},
headers={"Authorization": f"Bearer {token}"}
)
assert response.status_code == 200
image_id = response.json()["id"]
# Vérifier que la date a été générée automatiquement
metadata_response = client.get(
f"/image/{image_id}/metadata",
headers={"Authorization": f"Bearer {token}"}
)
assert metadata_response.status_code == 200
data = metadata_response.json()
assert "created_at" in data["metadata"]
assert data["metadata"]["created_at"] is not None
def test_image_with_invalid_pin_id(token):
test_image = create_test_image()
response = client.post(
"/image/pin/123456789987654321abcdef/add",
files={"image": ("test.jpg", test_image, "image/jpeg")},
data={"exif_date": "2024-03-20T12:00:00", "caption": "Test caption"},
headers={"Authorization": f"Bearer {token}"}
)
assert response.status_code == 404 # Le pin n'existe pas
# K.O
#
# def test_image_too_large(token):

Loading…
Cancel
Save