Files
004.erp.generic/backend/modules/invoicing/tests/test_tasks.py
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

40 lines
1.5 KiB
Python

import uuid
from django.test import TestCase
from unittest.mock import patch
from datetime import datetime
from django.contrib.auth import get_user_model
from modules.crm.models import Client
from modules.invoicing import tasks
class TasksTests(TestCase):
def setUp(self):
# Kreiramo klijenta koji vraća PaperlessGateway; email jedinstven radi izbjegavanja duplikata
self.client = Client.objects.create(
name="Paperless Corp",
email=f"paperless+{uuid.uuid4()}@example.test"
)
User = get_user_model()
# Kreiramo sistemskog korisnika koji već postoji (trebao bi se koristiti)
self.system_user = User.objects.create_user(
username="bot@erp.hr",
email="bot@erp.hr",
password="pass"
)
@patch("modules.invoicing.tasks.PaperlessGateway.get_document_metadata")
@patch("modules.invoicing.tasks.InvoiceService.create_full_invoice")
def test_process_paperless_document_calls_service(self, mock_create_full_invoice, mock_get_metadata):
# simuliramo odgovor infrastrukture
mock_get_metadata.return_value = {
"created": "2026-01-01T00:00:00Z",
"correspondent": "Paperless Corp",
"total_amount": "100.00"
}
# Pozovemo task sinkrono pomoću .apply (ispravno mapira argumente)
tasks.process_paperless_document_task.apply(args=(123,))
# Očekujemo da je pozvan servis za izradu fakture
mock_create_full_invoice.assert_called()