37 lines
1.3 KiB
Python
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"))
|