
* [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>
41 lines
1.1 KiB
Python
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
|