Pormenjen naicn rendovanja podatak iz template, popunjeni ceo dokument

This commit is contained in:
2025-04-18 16:29:07 +02:00
parent fc29671331
commit 31d679d9cf
7 changed files with 753 additions and 142 deletions

View File

@@ -0,0 +1,64 @@
import unittest
from django.template import Context
from ..processors import render_universal_segment, render_template
class TestProcessors(unittest.TestCase):
def setUp(self):
self.context_data = {
"document": {
"organization": {"name": "Example Corp"},
"created_at": "2025-04-08",
"third_party_vendor_access": 50
}
}
self.template_segments = [
{
"segment_type": "example_segment",
"content": [
{
"title": "Main Title",
"subtitle": "Subtitle 1",
"description": "This is the first description.\n- Bullet 1\n- Bullet 2"
},
{
"subtitle": "Subtitle 2",
"description": "This is the second description.\nAnother paragraph here."
}
],
"html": "<div><p>Custom HTML content with {{ document.organization.name }}</p></div>"
}
]
def test_render_universal_segment(self):
segment = self.template_segments[0]
result = render_universal_segment(segment, self.context_data)
self.assertIn("<h2 style=", result)
self.assertIn("<h3 style=", result)
self.assertIn("<ul style=", result)
self.assertIn("<div><p>Custom HTML content with Example Corp</p></div>", result)
def test_render_template(self):
result = render_template(self.template_segments, self.context_data)
self.assertIn('<div class="segment example_segment">', result)
self.assertIn("Main Title", result)
self.assertIn("Subtitle 1", result)
self.assertIn("Custom HTML content with Example Corp", result)
def test_empty_segment(self):
segment = {"segment_type": "empty_segment", "content": []}
result = render_universal_segment(segment, self.context_data)
self.assertEqual(result, "")
def test_missing_html(self):
segment = {
"segment_type": "no_html_segment",
"content": [{"title": "Title Only"}]
}
result = render_universal_segment(segment, self.context_data)
self.assertIn("Title Only", result)
self.assertNotIn("<div>", result)
def test_missing_content(self):
segment = {"segment_type": "html_only", "html": "<p>Only HTML</p>"}
result = render_universal_segment(segment, self.context_data)
self.assertIn("<p>Only HTML</p>", result)

View File

@@ -53,13 +53,16 @@ class DocumentViewTest(TestCase):
template_content = """
- segment_type: "h1"
content: "{{ document.organization.name }} - Risk Report"
content:
title: "{{ document.organization.name }} - Risk Report"
- segment_type: "p"
content: "Created at: {{ document.created_at|date:'Y-m-d' }}"
content:
descripton: |
"Created at: {{ document.created_at|date:'Y-m-d' }}"
- segment_type: "h2"
content: "Top 10 Risk Identified"
- segment_type: "table"
content: |
html: |
<table>
<tr>
<th>Risk ID</th>
@@ -81,11 +84,13 @@ class DocumentViewTest(TestCase):
{% endfor %}
</table>
- segment_type: "image"
content: "data:image/png;base64,{{ graph }}"
content:
image: "data:image/png;base64,{{ graph }}"
- segment_type: "h2"
content: "Risks with Controls"
content:
title: "Risks with Controls"
- segment_type: "body"
content: |
html: |
{% for item in risks_with_controls %}
<div class="risk">
<h3>Risk: {{ item.risk.name }}</h3>
@@ -107,7 +112,8 @@ class DocumentViewTest(TestCase):
response = self.client.get(reverse('core:document', kwargs={'document_id': self.document.id}))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'document.html')
self.assertContains(response, self.organization.name)
self.assertContains(response, self.organization.name)
self.assertContains(response, "Risk Report")
def test_index_view(self):
response = self.client.get(reverse('core:index'))