From 45d2a5dcc02cac1da11c4def93262d451d6a47ec Mon Sep 17 00:00:00 2001 From: Davit Lomauridze Date: Tue, 13 Aug 2024 15:09:33 +0400 Subject: [PATCH] [FIX]doument_page_portal: added test cases --- document_page_portal/tests/__init__.py | 1 + .../tests/test_document_controller.py | 73 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 document_page_portal/tests/test_document_controller.py diff --git a/document_page_portal/tests/__init__.py b/document_page_portal/tests/__init__.py index 7e42ded9..d868a7a1 100644 --- a/document_page_portal/tests/__init__.py +++ b/document_page_portal/tests/__init__.py @@ -1 +1,2 @@ from . import test_document_page_portal +from . import test_document_controller diff --git a/document_page_portal/tests/test_document_controller.py b/document_page_portal/tests/test_document_controller.py new file mode 100644 index 00000000..4a3a8042 --- /dev/null +++ b/document_page_portal/tests/test_document_controller.py @@ -0,0 +1,73 @@ +# Path: addons/document_page_portal/tests/test_portal.py + +from odoo.tests.common import HttpCase, tagged +from odoo.exceptions import AccessError, MissingError +from odoo import fields as odoo_fields + +@tagged('post_install', '-at_install') +class TestDocumentPageController(HttpCase): + + def setUp(self): + super(TestDocumentPagePortal, self).setUp() + self.portal_user = self.env.ref('base.public_user') + self.document_page_model = self.env['document.page'] + + def test_prepare_portal_layout_values(self): + """Test _prepare_portal_layout_values method.""" + with self.env.cr.savepoint(): + self.env = self.env(user=self.portal_user) + result = self.env['ir.http']._dispatch() + values = self.env['portal.customer.portal']._prepare_portal_layout_values() + document_page_count = self.document_page_model.search_count( + [('type', '=', 'content')] + ) + self.assertEqual(values.get('document_page_count'), document_page_count) + + def test_get_archive_groups(self): + """Test _get_archive_groups method.""" + with self.env.cr.savepoint(): + self.env = self.env(user=self.portal_user) + result = self.env['ir.http']._dispatch() + domain = [('type', '=', 'content')] + groups = self.env['portal.customer.portal']._get_archive_groups( + 'document.page', domain + ) + self.assertTrue(isinstance(groups, list)) + + def test_portal_my_knowledge_document_pages(self): + """Test portal_my_knowledge_document_pages route.""" + with self.env.cr.savepoint(): + self.env = self.env(user=self.portal_user) + result = self.url_open('/my/knowledge/documents') + self.assertEqual(result.status_code, 200) + + # Test with search query + result = self.url_open('/my/knowledge/documents?search=test') + self.assertEqual(result.status_code, 200) + + # Test with date filter + date_begin = odoo_fields.Date.to_string(odoo_fields.Date.today()) + date_end = odoo_fields.Date.to_string(odoo_fields.Date.today()) + result = self.url_open(f'/my/knowledge/documents?date_begin={date_begin}&date_end={date_end}') + self.assertEqual(result.status_code, 200) + + def test_document_pages_followup(self): + """Test document_pages_followup route.""" + with self.env.cr.savepoint(): + self.env = self.env(user=self.portal_user) + # Assuming there is at least one document.page record + document_page = self.document_page_model.create({ + 'name': 'Test Document', + 'type': 'content' + }) + result = self.url_open(f'/knowledge/document/{document_page.id}') + self.assertEqual(result.status_code, 200) + + # Test with an invalid document_page_id + with self.assertRaises(MissingError): + self.url_open('/knowledge/document/999999') + + # Test access with a non-public user + with self.assertRaises(AccessError): + self.url_open(f'/knowledge/document/{document_page.id}?token=invalid_token') +