Files
cetana-backend/apps/reports/tests.py
T
2026-09-24 12:32:59 +03:30

37 lines
1.3 KiB
Python

from decimal import Decimal
from django.contrib.auth import get_user_model
from django.test import TestCase
from apps.accounts.models import Customer
from apps.orders.models import ProcessingOrder
from apps.reports.services import ReportService
from apps.workflows.models import Workflow, WorkflowVersion
User = get_user_model()
class ReportServiceTests(TestCase):
def setUp(self):
self.user = User.objects.create_user(username="c", password="***")
self.customer = Customer.objects.create(user=self.user)
wf = Workflow.objects.create(name="W", slug="w-report")
version = WorkflowVersion.objects.create(workflow=wf, version=1)
self.order = ProcessingOrder.objects.create(
customer=self.customer,
workflow_version=version,
net_weight_kg=Decimal("920"),
price_snapshot={"total": "4600000.00", "currency": "IRR"},
)
def test_generate_builds_data(self):
report = ReportService().generate(self.order)
self.assertEqual(report.data["order_number"], self.order.order_number)
self.assertEqual(report.data["net_weight_kg"], "920")
def test_render_pdf(self):
report = ReportService().generate(self.order)
pdf = ReportService().render_pdf(report)
self.assertGreater(len(pdf), 1000)
self.assertTrue(pdf.startswith(b"%PDF"))