diff --git a/backend/core/tests/__init__.py b/backend/core/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/core/tests/test_views.py b/backend/core/tests/test_views.py new file mode 100644 index 0000000..a755f4f --- /dev/null +++ b/backend/core/tests/test_views.py @@ -0,0 +1,84 @@ +from django.test import TestCase, Client +from django.urls import reverse +from uuid import uuid4 +from backend.core.models import Organization, Document, Risk, Control, DocumentRiskControl, DocumentTemplate + +class DocumentViewTest(TestCase): + def setUp(self): + self.client = Client() + + self.organization = Organization.objects.create( + id=1, + name="Test Organization", + email="test@example.com", + employee_headcount="100-500", + annual_revenue="$1M-$10M", + critical_applications="5-10", + compliance_frameworks=["Ab", "Ba"], + industry_sector="Technology", + it_dependency=8, + data_sensitivity="High", + network_infrastructure="Cloud-based", + remote_workforce_percentage="50%", + third_party_vendor_access="10-20", + internal_software_development="Moderate", + geographic_scope="Global", + customer_base="Enterprise", + customer_type="B2B", + product_portfolio="Diverse", + supplier_base="International", + it_infrastructure=["Cloud", "On-Premise"], + intellectual_property=["Patents", "Trademarks"], + sensitive_data=["PII", "Financial Data"], + integration_level="Highly Integrated" + ) + + self.document = Document.objects.create(id=uuid4(), organization=self.organization) + + self.risk1 = Risk.objects.create(risk_id=1, risk_name="Risk 1") + self.risk2 = Risk.objects.create(risk_id=2, risk_name="Risk 2") + self.control1 = Control.objects.create(id=1, name="Control A") + self.control2 = Control.objects.create(id=2, name="Control B") + + DocumentRiskControl.objects.create(id=1, document=self.document, risk=self.risk1, control=self.control1, weight=5) + DocumentRiskControl.objects.create(id=2, document=self.document, risk=self.risk1, control=self.control2, weight=7) + DocumentRiskControl.objects.create(id=3, document=self.document, risk=self.risk2, control=self.control1, weight=8) + + template_content = """ + - segment_type: "h1" + content: "{{ document.organization.name }} - Risk Report" + - segment_type: "body" + content: "Document ID: {{ document.id }}" + - segment_type: "body" + content: "Created at: {{ document.created_at|date:'Y-m-d' }}" + - segment_type: "h2" + content: "Risks" + - segment_type: "body" + content: | + {% for item in risks_with_controls %} +