diff --git a/counter/api.py b/counter/api.py index e51aea26..f3f0f101 100644 --- a/counter/api.py +++ b/counter/api.py @@ -21,12 +21,11 @@ from ninja_extra import ControllerBase, api_controller, paginate, route from ninja_extra.pagination import PageNumberPaginationExtra from ninja_extra.schemas import PaginatedResponseSchema -from core.api_permissions import CanAccessLookup, CanView, IsLoggedInCounter, IsRoot -from counter.models import Counter, Customer, Product +from core.api_permissions import CanAccessLookup, CanView, IsRoot +from counter.models import Counter, Product from counter.schemas import ( CounterFilterSchema, CounterSchema, - CustomerSchema, ProductSchema, SimplifiedCounterSchema, ) @@ -61,18 +60,6 @@ class CounterController(ControllerBase): return filters.filter(Counter.objects.all()) -@api_controller("/customer") -class CustomerController(ControllerBase): - @route.get( - "{customer_id}", - response=CustomerSchema, - permissions=[IsLoggedInCounter], - url_name="get_customer", - ) - def get_customer(self, customer_id: int): - return self.get_object_or_exception(Customer, pk=customer_id) - - @api_controller("/product") class ProductController(ControllerBase): @route.get( diff --git a/counter/schemas.py b/counter/schemas.py index 7fbe1a71..ec1a842d 100644 --- a/counter/schemas.py +++ b/counter/schemas.py @@ -4,7 +4,7 @@ from annotated_types import MinLen from ninja import Field, FilterSchema, ModelSchema from core.schemas import SimpleUserSchema -from counter.models import Counter, Customer, Product +from counter.models import Counter, Product class CounterSchema(ModelSchema): @@ -16,12 +16,6 @@ class CounterSchema(ModelSchema): fields = ["id", "name", "type", "club", "products"] -class CustomerSchema(ModelSchema): - class Meta: - model = Customer - fields = ["user", "account_id", "amount", "recorded_products"] - - class CounterFilterSchema(FilterSchema): search: Annotated[str, MinLen(1)] = Field(None, q="name__icontains") diff --git a/counter/tests/test_api.py b/counter/tests/test_api.py deleted file mode 100644 index 8a5efdc1..00000000 --- a/counter/tests/test_api.py +++ /dev/null @@ -1,105 +0,0 @@ -import pytest -from django.contrib.auth.models import make_password -from django.test.client import Client -from django.urls import reverse -from model_bakery import baker - -from core.baker_recipes import board_user, subscriber_user -from core.models import User -from counter.models import Counter - - -@pytest.fixture -def customer_user() -> User: - return subscriber_user.make() - - -@pytest.fixture -def counter_bar() -> Counter: - return baker.make(Counter, type="BAR") - - -@pytest.fixture -def barmen(counter_bar: Counter) -> User: - user = subscriber_user.make(password=make_password("plop")) - counter_bar.sellers.add(user) - return user - - -@pytest.fixture -def board_member() -> User: - return board_user.make() - - -@pytest.fixture -def root_user() -> User: - return baker.make(User, is_superuser=True) - - -@pytest.mark.django_db -@pytest.mark.parametrize( - ("connected_user"), - [ - None, # Anonymous user - "barmen", - "customer_user", - "board_member", - "root_user", - ], -) -def test_get_customer_fail( - client: Client, - customer_user: User, - request: pytest.FixtureRequest, - connected_user: str | None, -): - if connected_user is not None: - client.force_login(request.getfixturevalue(connected_user)) - assert ( - client.get( - reverse("api:get_customer", kwargs={"customer_id": customer_user.id}) - ).status_code - == 403 - ) - - -@pytest.mark.django_db -def test_get_customer_from_bar_fail_wrong_referrer( - client: Client, customer_user: User, barmen: User, counter_bar: Counter -): - client.post( - reverse("counter:login", args=[counter_bar.pk]), - {"username": barmen.username, "password": "plop"}, - ) - - assert ( - client.get( - reverse("api:get_customer", kwargs={"customer_id": customer_user.id}) - ).status_code - == 403 - ) - - -@pytest.mark.django_db -def test_get_customer_from_bar_success( - client: Client, customer_user: User, barmen: User, counter_bar: Counter -): - client.post( - reverse("counter:login", args=[counter_bar.pk]), - {"username": barmen.username, "password": "plop"}, - ) - - response = client.get( - reverse("api:get_customer", kwargs={"customer_id": customer_user.id}), - HTTP_REFERER=reverse( - "counter:click", - kwargs={"counter_id": counter_bar.id, "user_id": customer_user.id}, - ), - ) - assert response.status_code == 200 - assert response.json() == { - "user": customer_user.id, - "account_id": customer_user.customer.account_id, - "amount": f"{customer_user.customer.amount:.2f}", - "recorded_products": customer_user.customer.recorded_products, - } diff --git a/counter/tests/test_counter.py b/counter/tests/test_counter.py index 2574865f..9c6d3b7a 100644 --- a/counter/tests/test_counter.py +++ b/counter/tests/test_counter.py @@ -72,9 +72,7 @@ class TestCounter(TestCase): kwargs={"customer_id": self.richard.customer.pk}, ) - response = self.client.get( - response.get("location"), - ) + response = self.client.get(counter_url) assert ">Richard Batsbak