|
|
|
@ -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):
|
|
|
|
|