feat: added lots of tests

This commit is contained in:
2024-05-13 12:33:09 +02:00
parent ad017382a9
commit 05caeb9607
8 changed files with 113 additions and 11 deletions
+53 -5
View File
@@ -1,3 +1,4 @@
from django.utils import timezone
from rest_framework import serializers
from files.api.v1.serializers import FileUploadSerializer
@@ -17,6 +18,7 @@ class TaxSerializer(serializers.ModelSerializer):
class Meta:
model = Tax
fields = (
"id",
"code",
"value",
)
@@ -35,15 +37,20 @@ class ProductPriceSerializer(serializers.ModelSerializer):
)
class CreateProductPriceSerializer(serializers.ModelSerializer):
class Meta:
model = ProductPrice
fields = (
"id",
"price",
"tax",
)
class ProductSerializer(serializers.ModelSerializer):
images = FileUploadSerializer(many=True, read_only=True)
price = ProductPriceSerializer()
def get_price(self, product):
last_price = product.prices.last()
return ProductPriceSerializer(last_price).data
class Meta:
model = Product
fields = (
@@ -56,10 +63,49 @@ class ProductSerializer(serializers.ModelSerializer):
)
class CreateProductSerializer(serializers.ModelSerializer):
price = serializers.DecimalField(
max_digits=13, decimal_places=4, required=False, write_only=True
)
tax = serializers.PrimaryKeyRelatedField(
queryset=Tax.objects.all(), write_only=True
)
def create(self, validated_data):
instance = Product.objects.create(
name=validated_data.get("name"),
description=validated_data.get("description"),
stock=validated_data.get("stock"),
is_digital_asset=validated_data.get("is_digital_asset"),
url=validated_data.get("url"),
)
ProductPrice.objects.create(
product=instance,
date=timezone.now(),
price=validated_data.get("price"),
tax=validated_data.get("tax"),
)
return instance
class Meta:
model = Product
fields = (
"id",
"name",
"description",
"stock",
"is_digital_asset",
"url",
"price",
"tax",
)
class ProductBatchSerializer(serializers.ModelSerializer):
class Meta:
model = ProductBatch
fields = (
"id",
"code",
"product",
"quantity",
@@ -72,6 +118,7 @@ class CustomerSerializer(serializers.ModelSerializer):
class Meta:
model = Customer
fields = (
"id",
"vat_id",
"first_name",
"last_name",
@@ -88,6 +135,7 @@ class ProviderSerializer(serializers.ModelSerializer):
class Meta:
model = Provider
fields = (
"id",
"vat_id",
"name",
"email",