This commit is contained in:
40
backend/modules/invoicing/tests/test_tasks.py
Normal file
40
backend/modules/invoicing/tests/test_tasks.py
Normal file
@@ -0,0 +1,40 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user