106 lines
2.4 KiB
Python
106 lines
2.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import annotations
|
|
|
|
import uuid
|
|
|
|
from django.utils.timezone import now
|
|
import pytest
|
|
|
|
from hotpocket_soa.dto.saves import SaveOut
|
|
|
|
|
|
@pytest.fixture
|
|
def save_url_factory():
|
|
def factory():
|
|
return f'https://{uuid.uuid4()}.local/'
|
|
|
|
return factory
|
|
|
|
|
|
@pytest.fixture
|
|
def save_url(save_url_factory):
|
|
return save_url_factory()
|
|
|
|
|
|
@pytest.fixture
|
|
def save_factory(request: pytest.FixtureRequest):
|
|
default_account = request.getfixturevalue('account')
|
|
default_url = request.getfixturevalue('save_url')
|
|
|
|
def factory(account=None, **kwargs):
|
|
from hotpocket_backend_testing.factories.saves import SaveFactory
|
|
|
|
if 'url' not in kwargs:
|
|
kwargs['url'] = default_url
|
|
|
|
return SaveFactory(
|
|
account_uuid=(
|
|
account.pk
|
|
if account is not None
|
|
else default_account.pk
|
|
),
|
|
**kwargs,
|
|
)
|
|
|
|
return factory
|
|
|
|
|
|
@pytest.fixture
|
|
def save(save_factory):
|
|
return save_factory()
|
|
|
|
|
|
@pytest.fixture
|
|
def save_out(save):
|
|
return SaveOut.model_validate(save, from_attributes=True)
|
|
|
|
|
|
@pytest.fixture
|
|
def other_save(save_factory, save_url_factory):
|
|
return save_factory(url=save_url_factory())
|
|
|
|
|
|
@pytest.fixture
|
|
def other_save_out(other_save):
|
|
return SaveOut.model_validate(other_save, from_attributes=True)
|
|
|
|
|
|
@pytest.fixture
|
|
def processed_save(save_factory, save_url_factory):
|
|
return save_factory(url=save_url_factory(), last_processed_at=now())
|
|
|
|
|
|
@pytest.fixture
|
|
def processed_save_out(processed_save):
|
|
return SaveOut.model_validate(processed_save, from_attributes=True)
|
|
|
|
|
|
@pytest.fixture
|
|
def netloc_banned_save(save_factory, save_url_factory):
|
|
return save_factory(url=save_url_factory(), is_netloc_banned=True)
|
|
|
|
|
|
@pytest.fixture
|
|
def netloc_banned_save_out(netloc_banned_save):
|
|
return SaveOut.model_validate(netloc_banned_save, from_attributes=True)
|
|
|
|
|
|
@pytest.fixture
|
|
def deleted_save(save_factory, save_url_factory):
|
|
return save_factory(url=save_url_factory(), deleted_at=now())
|
|
|
|
|
|
@pytest.fixture
|
|
def deleted_save_out(deleted_save):
|
|
return SaveOut.model_validate(deleted_save, from_attributes=True)
|
|
|
|
|
|
@pytest.fixture
|
|
def other_account_save(save_factory, other_account, save_url_factory):
|
|
return save_factory(account=other_account, url=save_url_factory())
|
|
|
|
|
|
@pytest.fixture
|
|
def other_account_save_out(other_account_save):
|
|
return SaveOut.model_validate(other_account_save, from_attributes=True)
|