Files
mariomitte 5d39e048ba
Some checks failed
ERP CI Pipeline / test (push) Has been cancelled
prvi kod za live uporabu
2026-07-09 21:21:17 +02:00

46 lines
1.9 KiB
Python

from django.test import TestCase, RequestFactory
from django.contrib.auth import get_user_model
from unittest.mock import patch
from modules.invoicing.views import InvoiceTransactionEntryViewSet
from modules.invoicing.serializers import InvoiceTransactionSerializer
from modules.invoicing.models import InvoiceTransaction
from modules.invoicing.models import Invoice
from modules.crm.models import Client
from datetime import date
from decimal import Decimal
class ViewsTests(TestCase):
def setUp(self):
User = get_user_model()
self.user = User.objects.create_user(username="u1", email="u1@example.com", password="pass")
self.client = Client.objects.create(name="Client Views")
self.invoice = Invoice.objects.create(
invoice_number="INV-TEST-0001",
creator=self.user,
client=self.client,
amount=Decimal("10.00"),
due_date=date.today()
)
self.factory = RequestFactory()
self.viewset = InvoiceTransactionEntryViewSet()
@patch("modules.invoicing.services.InvoiceService.create_invoice_entry")
def test_perform_create_calls_service(self, mock_create_invoice_entry):
# simuliramo serializer.validated_data i poziv perform_create
serializer = InvoiceTransactionSerializer(data={
"invoice": self.invoice.id,
"invoice_number": self.invoice.invoice_number,
"amount": "5.00",
"is_active": True
}, context={"request": self.factory.get("/")})
serializer.is_valid(raise_exception=True)
# Poziv perform_create koji bi trebao delegirati na servis
self.viewset.request = self.factory.post("/")
self.viewset.request.user = self.user
# Ako kod poziva InvoiceService.create_invoice_entry, mock se aktivira.
self.viewset.perform_create(serializer)
mock_create_invoice_entry.assert_called()