mirror of https://github.com/gmbrax/Pilgrim.git
Merge remote-tracking branch 'origin/test/photoservice-unit-tests' into test/photoservice-unit-tests
# Conflicts: # tests/conftest.py # tests/service/test_photo_service.py
This commit is contained in:
commit
65cf7b04f3
|
|
@ -2,7 +2,6 @@ import pytest
|
||||||
from sqlalchemy import create_engine
|
from sqlalchemy import create_engine
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
|
|
||||||
from pilgrim import Photo
|
|
||||||
from pilgrim.database import Base
|
from pilgrim.database import Base
|
||||||
from pilgrim.models.travel_diary import TravelDiary
|
from pilgrim.models.travel_diary import TravelDiary
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -107,51 +107,4 @@ def test_check_photo_by_hash_returns_none_when_not_found(session_with_photos):
|
||||||
assert result1 is None
|
assert result1 is None
|
||||||
invalid_diary_id = 999
|
invalid_diary_id = 999
|
||||||
result2 = service.check_photo_by_hash(existing_hash, invalid_diary_id)
|
result2 = service.check_photo_by_hash(existing_hash, invalid_diary_id)
|
||||||
assert result2 is None
|
assert result2 is None
|
||||||
|
|
||||||
def test_update_photo_metadata_successfully(session_with_photos):
|
|
||||||
session, photos = session_with_photos
|
|
||||||
service = PhotoService(session)
|
|
||||||
photo_to_update = photos[0]
|
|
||||||
photo_with_new_data = Photo(
|
|
||||||
filepath=photo_to_update.filepath,
|
|
||||||
name="Novo Nome da Foto",
|
|
||||||
caption="Nova legenda.",
|
|
||||||
photo_hash=photo_to_update.photo_hash, # Hash não muda
|
|
||||||
addition_date=photo_to_update.addition_date,
|
|
||||||
fk_travel_diary_id=photo_to_update.fk_travel_diary_id
|
|
||||||
)
|
|
||||||
updated_photo = service.update(photo_to_update, photo_with_new_data)
|
|
||||||
assert updated_photo is not None
|
|
||||||
assert updated_photo.name == "Novo Nome da Foto"
|
|
||||||
assert updated_photo.caption == "Nova legenda."
|
|
||||||
assert updated_photo.photo_hash == "hash1"
|
|
||||||
|
|
||||||
@patch.object(PhotoService, 'hash_file')
|
|
||||||
@patch('pathlib.Path.unlink')
|
|
||||||
@patch('pathlib.Path.exists')
|
|
||||||
@patch.object(PhotoService, '_copy_photo_to_diary')
|
|
||||||
@patch.object(DirectoryManager, 'get_diaries_root', return_value="/fake/diaries_root")
|
|
||||||
def test_update_photo_with_new_file_successfully(
|
|
||||||
mock_get_root, mock_copy, mock_exists, mock_unlink, mock_hash, session_with_photos
|
|
||||||
):
|
|
||||||
session, photos = session_with_photos
|
|
||||||
service = PhotoService(session)
|
|
||||||
photo_to_update = photos[0]
|
|
||||||
new_source_path = Path("/path/para/nova_imagem.jpg")
|
|
||||||
new_copied_path = Path(f"/fake/diaries_root/{photo_to_update.travel_diary.directory_name}/images/nova_imagem.jpg")
|
|
||||||
mock_copy.return_value = new_copied_path
|
|
||||||
mock_exists.return_value = True
|
|
||||||
mock_hash.return_value = "novo_hash_calculado"
|
|
||||||
photo_with_new_file = Photo(
|
|
||||||
filepath=new_source_path,
|
|
||||||
name=photo_to_update.name,
|
|
||||||
photo_hash="hash_antigo",
|
|
||||||
fk_travel_diary_id=photo_to_update.fk_travel_diary_id
|
|
||||||
)
|
|
||||||
updated_photo = service.update(photo_to_update, photo_with_new_file)
|
|
||||||
mock_copy.assert_called_once_with(new_source_path, photo_to_update.travel_diary)
|
|
||||||
mock_unlink.assert_called_once()
|
|
||||||
mock_hash.assert_called_once_with(new_copied_path)
|
|
||||||
assert updated_photo.filepath == str(new_copied_path)
|
|
||||||
assert updated_photo.photo_hash == "novo_hash_calculado"
|
|
||||||
Loading…
Reference in New Issue