feat: added lots of tests
This commit is contained in:
@@ -0,0 +1,53 @@
|
|||||||
|
import string
|
||||||
|
import random
|
||||||
|
from django.contrib.auth.models import User, Permission
|
||||||
|
|
||||||
|
|
||||||
|
class TestUserAuthenticationMixin:
|
||||||
|
model_name = ""
|
||||||
|
|
||||||
|
def create_user(self):
|
||||||
|
self.password = "".join(
|
||||||
|
[random.choice(string.ascii_letters) for _ in range(16)]
|
||||||
|
)
|
||||||
|
self.user = User.objects.create(
|
||||||
|
username="vader",
|
||||||
|
email="darth@vader.com",
|
||||||
|
is_staff=True,
|
||||||
|
is_active=True,
|
||||||
|
)
|
||||||
|
self.user.set_password(self.password)
|
||||||
|
self.user.save()
|
||||||
|
self.setup_user_permissions()
|
||||||
|
|
||||||
|
def login(self):
|
||||||
|
response = self.client.post(
|
||||||
|
"/api/v1/auth/login/",
|
||||||
|
{
|
||||||
|
"username": self.user.username,
|
||||||
|
"password": self.password,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
jwt_token = response.data.get("access")
|
||||||
|
self.client.credentials(HTTP_AUTHORIZATION=f"Bearer {jwt_token}")
|
||||||
|
|
||||||
|
def setup_user_permissions(self):
|
||||||
|
self.create_permission = Permission.objects.get(
|
||||||
|
codename=f"add_{self.model_name}"
|
||||||
|
)
|
||||||
|
self.delete_permission = Permission.objects.get(
|
||||||
|
codename=f"delete_{self.model_name}"
|
||||||
|
)
|
||||||
|
self.list_permission = Permission.objects.get(
|
||||||
|
codename=f"view_{self.model_name}"
|
||||||
|
)
|
||||||
|
self.update_permission = Permission.objects.get(
|
||||||
|
codename=f"change_{self.model_name}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Grant access and permissions
|
||||||
|
self.user.user_permissions.add(self.create_permission)
|
||||||
|
self.user.user_permissions.add(self.delete_permission)
|
||||||
|
self.user.user_permissions.add(self.list_permission)
|
||||||
|
self.user.user_permissions.add(self.update_permission)
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
from rest_framework import status
|
||||||
|
from rest_framework.test import APITestCase
|
||||||
|
|
||||||
|
from config.tests.mixins import TestUserAuthenticationMixin
|
||||||
|
|
||||||
|
|
||||||
|
class TestCustomersAPI(APITestCase, TestUserAuthenticationMixin):
|
||||||
|
model_name = "customer"
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.create_user()
|
||||||
|
|
||||||
|
def test_create_retrieve_customer(self):
|
||||||
|
self.login()
|
||||||
|
response = self.client.post(
|
||||||
|
f"/api/v1/shop/customers/",
|
||||||
|
{
|
||||||
|
"vat_id": "11111111H",
|
||||||
|
"first_name": "Darth",
|
||||||
|
"last_name": "Maull",
|
||||||
|
"email": "darth@maul.com",
|
||||||
|
"address": "Dathomir",
|
||||||
|
"city": "Dathomir",
|
||||||
|
"state": "Dathomir",
|
||||||
|
"country": "Dathomir",
|
||||||
|
"zip": "00001",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
response = self.client.get(f"/api/v1/shop/customers/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
def test_create_update_customer(self):
|
||||||
|
self.login()
|
||||||
|
response = self.client.post(
|
||||||
|
f"/api/v1/shop/customers/",
|
||||||
|
{
|
||||||
|
"vat_id": "11111111H",
|
||||||
|
"first_name": "Darth",
|
||||||
|
"last_name": "Maull",
|
||||||
|
"email": "darth@maul.com",
|
||||||
|
"address": "Dathomir",
|
||||||
|
"city": "Dathomir",
|
||||||
|
"state": "Dathomir",
|
||||||
|
"country": "Dathomir",
|
||||||
|
"zip": "00001",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
response = self.client.get(f"/api/v1/shop/customers/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
response = self.client.patch(
|
||||||
|
f"/api/v1/shop/customers/{pk}/",
|
||||||
|
{
|
||||||
|
"address": "Mandalore",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
response = self.client.get(f"/api/v1/shop/customers/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
assert response.data.get("address") == "Mandalore"
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
from decimal import Decimal
|
||||||
|
|
||||||
|
from rest_framework import status
|
||||||
|
from rest_framework.test import APITestCase
|
||||||
|
|
||||||
|
from config.tests.mixins import TestUserAuthenticationMixin
|
||||||
|
from shop.models import Product, ProductBatch
|
||||||
|
|
||||||
|
|
||||||
|
class TestProductBatchesAPI(APITestCase, TestUserAuthenticationMixin):
|
||||||
|
model_name = "productbatch"
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.create_user()
|
||||||
|
|
||||||
|
def create_product(self):
|
||||||
|
self.product = Product.objects.create(
|
||||||
|
name="Papafritas",
|
||||||
|
description="Las mejores papafritas",
|
||||||
|
is_digital_asset=False,
|
||||||
|
url="",
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_create_retrieve_product_batch(self):
|
||||||
|
self.login()
|
||||||
|
self.create_product()
|
||||||
|
response = self.client.post(
|
||||||
|
"/api/v1/shop/product-batches/",
|
||||||
|
{"code": "B00001", "product": self.product.pk, "quantity": "5"},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/product-batches/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
def test_create_update_tax(self):
|
||||||
|
self.login()
|
||||||
|
self.create_product()
|
||||||
|
response = self.client.post(
|
||||||
|
"/api/v1/shop/product-batches/",
|
||||||
|
{"code": "B00001", "product": self.product.pk, "quantity": "5"},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/product-batches/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
response = self.client.patch(
|
||||||
|
f"/api/v1/shop/product-batches/{pk}/",
|
||||||
|
{
|
||||||
|
"quantity": "10",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/product-batches/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
assert Decimal(response.data.get("quantity")) == Decimal("10")
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
from decimal import Decimal
|
||||||
|
|
||||||
|
from rest_framework import status
|
||||||
|
from rest_framework.test import APITestCase
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
|
from config.tests.mixins import TestUserAuthenticationMixin
|
||||||
|
from shop.models import Product, ProductPrice, Tax, ProductBatch
|
||||||
|
|
||||||
|
|
||||||
|
class TestProductPricessAPI(APITestCase, TestUserAuthenticationMixin):
|
||||||
|
model_name = "productprice"
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.create_user()
|
||||||
|
self.tax = Tax.objects.create(
|
||||||
|
code="IVA",
|
||||||
|
value=21,
|
||||||
|
)
|
||||||
|
|
||||||
|
def create_products(self):
|
||||||
|
self.product = Product.objects.create(
|
||||||
|
name="Papafritas",
|
||||||
|
description="Las mejores papafritas",
|
||||||
|
is_digital_asset=False,
|
||||||
|
url="",
|
||||||
|
)
|
||||||
|
|
||||||
|
ProductPrice.objects.create(
|
||||||
|
product=self.product,
|
||||||
|
price=Decimal("1.20"),
|
||||||
|
tax=self.tax,
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_fetch_product_prices(self):
|
||||||
|
self.login()
|
||||||
|
self.create_products()
|
||||||
|
response = self.client.get(f"/api/v1/shop/products/{self.product.pk}/prices/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
assert len(response.data.get("results")) == 1
|
||||||
|
|
||||||
|
def test_create_product_prices(self):
|
||||||
|
self.login()
|
||||||
|
|
||||||
|
product = Product.objects.create(
|
||||||
|
name="Papafritas",
|
||||||
|
description="Las mejores papafritas",
|
||||||
|
is_digital_asset=False,
|
||||||
|
url="",
|
||||||
|
)
|
||||||
|
response = self.client.post(
|
||||||
|
f"/api/v1/shop/products/{product.pk}/prices/",
|
||||||
|
{
|
||||||
|
"price": "1.20",
|
||||||
|
"tax": self.tax.pk,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
response = self.client.get(f"/api/v1/shop/products/{product.pk}/prices/")
|
||||||
|
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
assert len(response.data.get("results")) == 1
|
||||||
|
|
||||||
|
def test_create_update_product_prices(self):
|
||||||
|
self.login()
|
||||||
|
|
||||||
|
product = Product.objects.create(
|
||||||
|
name="Papafritas",
|
||||||
|
description="Las mejores papafritas",
|
||||||
|
is_digital_asset=False,
|
||||||
|
url="",
|
||||||
|
)
|
||||||
|
response = self.client.post(
|
||||||
|
f"/api/v1/shop/products/{product.pk}/prices/",
|
||||||
|
{
|
||||||
|
"price": "1.20",
|
||||||
|
"tax": self.tax.pk,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
response = self.client.patch(
|
||||||
|
f"/api/v1/shop/products/{product.pk}/prices/{pk}/",
|
||||||
|
{
|
||||||
|
"price": "1.10",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
response = self.client.get(f"/api/v1/shop/products/{product.pk}/prices/{pk}/")
|
||||||
|
assert response.data.get("price") == "1.10"
|
||||||
|
|
||||||
|
def test_create_delete_product_prices(self):
|
||||||
|
self.login()
|
||||||
|
|
||||||
|
product = Product.objects.create(
|
||||||
|
name="Papafritas",
|
||||||
|
description="Las mejores papafritas",
|
||||||
|
is_digital_asset=False,
|
||||||
|
url="",
|
||||||
|
)
|
||||||
|
response = self.client.post(
|
||||||
|
f"/api/v1/shop/products/{product.pk}/prices/",
|
||||||
|
{
|
||||||
|
"price": "1.20",
|
||||||
|
"tax": self.tax.pk,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
|
||||||
|
response = self.client.delete(
|
||||||
|
f"/api/v1/shop/products/{product.pk}/prices/{pk}/"
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/products/{product.pk}/prices/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_404_NOT_FOUND
|
||||||
@@ -0,0 +1,129 @@
|
|||||||
|
from decimal import Decimal
|
||||||
|
|
||||||
|
from rest_framework import status
|
||||||
|
from rest_framework.test import APITestCase
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
|
from config.tests.mixins import TestUserAuthenticationMixin
|
||||||
|
from shop.models import Product, ProductPrice, Tax, ProductBatch
|
||||||
|
|
||||||
|
|
||||||
|
class TestProductsAPI(APITestCase, TestUserAuthenticationMixin):
|
||||||
|
model_name = "product"
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.create_user()
|
||||||
|
self.tax = Tax.objects.create(
|
||||||
|
code="IVA",
|
||||||
|
value=21,
|
||||||
|
)
|
||||||
|
|
||||||
|
def create_products(self):
|
||||||
|
self.product = Product.objects.create(
|
||||||
|
name="Papafritas",
|
||||||
|
description="Las mejores papafritas",
|
||||||
|
is_digital_asset=False,
|
||||||
|
url="",
|
||||||
|
)
|
||||||
|
|
||||||
|
self.product_price = ProductPrice.objects.create(
|
||||||
|
product=self.product,
|
||||||
|
price=Decimal("1.20"),
|
||||||
|
tax=self.tax,
|
||||||
|
date=timezone.now(),
|
||||||
|
)
|
||||||
|
|
||||||
|
self.batch = ProductBatch.objects.create(
|
||||||
|
code="B0001",
|
||||||
|
product=self.product,
|
||||||
|
quantity=Decimal("10"),
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_fetch_products(self):
|
||||||
|
self.login()
|
||||||
|
self.create_products()
|
||||||
|
response = self.client.get("/api/v1/shop/products/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
assert len(response.data.get("results")) == 1
|
||||||
|
|
||||||
|
def test_create_product(self):
|
||||||
|
self.login()
|
||||||
|
response = self.client.post(
|
||||||
|
"/api/v1/shop/products/",
|
||||||
|
{
|
||||||
|
"name": "Papafritas",
|
||||||
|
"description": "Las mejores papafritas",
|
||||||
|
"is_digital_asset": False,
|
||||||
|
"url": "",
|
||||||
|
"price": "1.20",
|
||||||
|
"stock": "100",
|
||||||
|
"tax": self.tax.pk,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/products/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
def test_create_update_product(self):
|
||||||
|
self.login()
|
||||||
|
response = self.client.post(
|
||||||
|
"/api/v1/shop/products/",
|
||||||
|
{
|
||||||
|
"name": "Papafritas",
|
||||||
|
"description": "Las mejores papafritas",
|
||||||
|
"is_digital_asset": False,
|
||||||
|
"url": "",
|
||||||
|
"price": "1.20",
|
||||||
|
"stock": "100",
|
||||||
|
"tax": self.tax.pk,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/products/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
response = self.client.patch(
|
||||||
|
f"/api/v1/shop/products/{pk}/", {"name": "Papafritas pafritas"}
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
response = self.client.get(f"/api/v1/shop/products/{pk}/")
|
||||||
|
assert response.data.get("name") == "Papafritas pafritas"
|
||||||
|
|
||||||
|
def test_create_delete_product(self):
|
||||||
|
self.login()
|
||||||
|
response = self.client.post(
|
||||||
|
"/api/v1/shop/products/",
|
||||||
|
{
|
||||||
|
"name": "Papafritas",
|
||||||
|
"description": "Las mejores papafritas",
|
||||||
|
"is_digital_asset": False,
|
||||||
|
"url": "",
|
||||||
|
"price": "1.20",
|
||||||
|
"stock": "100",
|
||||||
|
"tax": self.tax.pk,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/products/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
response = self.client.delete(f"/api/v1/shop/products/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_204_NO_CONTENT
|
||||||
|
response = self.client.get(f"/api/v1/shop/products/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_404_NOT_FOUND
|
||||||
|
|
||||||
|
def test_create_cannot_delete_product_with_a_batch(self):
|
||||||
|
self.login()
|
||||||
|
self.create_products()
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/products/{self.product.pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
response = self.client.delete(f"/api/v1/shop/products/{self.product.pk}/")
|
||||||
|
assert response.status_code == status.HTTP_400_BAD_REQUEST
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
from rest_framework import status
|
||||||
|
from rest_framework.test import APITestCase
|
||||||
|
|
||||||
|
from config.tests.mixins import TestUserAuthenticationMixin
|
||||||
|
|
||||||
|
|
||||||
|
class TestProvidersAPI(APITestCase, TestUserAuthenticationMixin):
|
||||||
|
model_name = "provider"
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.create_user()
|
||||||
|
|
||||||
|
def test_create_retrieve_provider(self):
|
||||||
|
self.login()
|
||||||
|
response = self.client.post(
|
||||||
|
f"/api/v1/shop/providers/",
|
||||||
|
{
|
||||||
|
"vat_id": "11111111H",
|
||||||
|
"name": "Darth Maul",
|
||||||
|
"email": "darth@maul.com",
|
||||||
|
"address": "Dathomir",
|
||||||
|
"city": "Dathomir",
|
||||||
|
"state": "Dathomir",
|
||||||
|
"country": "Dathomir",
|
||||||
|
"zip": "00001",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/providers/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
def test_create_update_provider(self):
|
||||||
|
self.login()
|
||||||
|
response = self.client.post(
|
||||||
|
f"/api/v1/shop/providers/",
|
||||||
|
{
|
||||||
|
"vat_id": "11111111H",
|
||||||
|
"name": "Darth Maul",
|
||||||
|
"email": "darth@maul.com",
|
||||||
|
"address": "Dathomir",
|
||||||
|
"city": "Dathomir",
|
||||||
|
"state": "Dathomir",
|
||||||
|
"country": "Dathomir",
|
||||||
|
"zip": "00001",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
response = self.client.get(f"/api/v1/shop/providers/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
response = self.client.patch(
|
||||||
|
f"/api/v1/shop/providers/{pk}/",
|
||||||
|
{
|
||||||
|
"address": "Mandalore",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
response = self.client.get(f"/api/v1/shop/providers/{pk}/")
|
||||||
|
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
assert response.data.get("address") == "Mandalore"
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
from rest_framework import status
|
||||||
|
from rest_framework.test import APITestCase
|
||||||
|
|
||||||
|
from config.tests.mixins import TestUserAuthenticationMixin
|
||||||
|
from shop.models import Tax
|
||||||
|
|
||||||
|
|
||||||
|
class TestTaxesAPI(APITestCase, TestUserAuthenticationMixin):
|
||||||
|
model_name = "tax"
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.create_user()
|
||||||
|
|
||||||
|
def create_taxes(self):
|
||||||
|
Tax.objects.create(
|
||||||
|
code="IVA",
|
||||||
|
value=21,
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_fetch_taxes(self):
|
||||||
|
self.create_taxes()
|
||||||
|
self.login()
|
||||||
|
response = self.client.get("/api/v1/shop/taxes/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
assert len(response.data.get("results")) == 1
|
||||||
|
|
||||||
|
def test_create_retrieve_tax(self):
|
||||||
|
self.login()
|
||||||
|
response = self.client.post("/api/v1/shop/taxes/", {"code": "IVA5", "value": 5})
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/taxes/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
def test_create_update_tax(self):
|
||||||
|
self.login()
|
||||||
|
response = self.client.post("/api/v1/shop/taxes/", {"code": "IVA5", "value": 5})
|
||||||
|
assert response.status_code == status.HTTP_201_CREATED
|
||||||
|
pk = response.data.get("id")
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/taxes/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
response = self.client.patch(
|
||||||
|
f"/api/v1/shop/taxes/{pk}/", {"code": "IVA10", "value": 10}
|
||||||
|
)
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
response = self.client.get(f"/api/v1/shop/taxes/{pk}/")
|
||||||
|
assert response.status_code == status.HTTP_200_OK
|
||||||
|
|
||||||
|
assert response.data.get("code") == "IVA10"
|
||||||
|
assert response.data.get("value") == 10
|
||||||
Reference in New Issue
Block a user