membersystem/tests/conftest.py
bbb 43d19d3106 New Service Request setup (#59)
* [x] Adds a ServiceRequest model for all service types
* [x] Pre-define simple service requests to begin with
* [x] Django admin for admins to handle requests
* [x] Notifications for Matrix
* [x] Moved Service Access to `services` app
* [x] Auto-create default service requests for new memberships
* [x] Most simple kinds of tests added
* [x] Fix issue in generating service requests (check for service access firstly)
* [ ] Channel and bot account

## Deployment

1. Create a bot account. Get an access token with:

   ```
   curl -XPOST \
     -d '{"type":"m.login.password", "user":"<userid>", "password":"<password>"}' \
     "https://data.coop/_matrix/client/r0/login"
   ```

2. Create an admin room for admins. Add admins + bot. Copy the room ID.
3. Add new environment variables for the setup `MATRIX_ACCESS_TOKEN` and `MATRIX_SERVICE_REQUEST_ADMIN_ROOM`

Reviewed-on: https://git.data.coop/data.coop/membersystem/pulls/59
Co-authored-by: bbb <benjamin@overtag.dk>
Co-committed-by: bbb <benjamin@overtag.dk>
2025-01-15 07:16:12 +00:00

41 lines
1.1 KiB
Python

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():
return MembershipType.objects.create(name="Test Membership Type")
@pytest.fixture()
def current_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):
member = Member.objects.create_user("test", "lala@adas.com", "1234")
membership = Membership.objects.create(
user=member,
membership_type=membership_type,
period=current_period,
activated=True,
)
return membership
@pytest.fixture(autouse=True)
def mock_matrix_notify():
with mock.patch("utils.matrix.httpx.post"):
yield