membersystem/tests/conftest.py

47 lines
1.3 KiB
Python
Raw Normal View History

"""Pytest configuration."""
from datetime import timedelta
from unittest import mock
import pytest
from django.db.backends.postgresql.psycopg_any import DateRange
from django.utils import timezone
from membership.models import Member
from membership.models import Membership
from membership.models import MembershipType
from membership.models import SubscriptionPeriod
@pytest.fixture()
def membership_type():
"""Provide a membership type."""
return MembershipType.objects.create(name="Test Membership Type")
@pytest.fixture()
def current_period():
"""Provide a current subscription period."""
SubscriptionPeriod.objects.create(
period=DateRange(timezone.now().date() - timedelta(days=182), timezone.now().date() + timedelta(days=183))
)
return SubscriptionPeriod.objects.current()
@pytest.fixture()
def active_membership(membership_type, current_period):
"""Provide an active membership."""
member = Member.objects.create_user("test", "lala@adas.com", "1234")
return Membership.objects.create(
user=member,
membership_type=membership_type,
period=current_period,
activated=True,
)
@pytest.fixture(autouse=True)
def _mock_matrix_notify() -> None:
"""Mock the matrix notify post."""
with mock.patch("utils.matrix.httpx.post"):
yield