From e1ac1c77c093633fcba309c617b9c48656e4a848 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sun, 16 Mar 2025 00:53:19 +1100 Subject: [PATCH] Provide mocked URL to dummy print requst (#9307) * Provide mocked URL to dummy print requst - FIxes bug which prevented background printing with DEBUG=False * Disable debug for postgres testing --- .github/workflows/qc_checks.yaml | 2 +- src/backend/InvenTree/report/models.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml index 2be5759d2b..a0be497072 100644 --- a/.github/workflows/qc_checks.yaml +++ b/.github/workflows/qc_checks.yaml @@ -454,7 +454,7 @@ jobs: INVENTREE_DB_PASSWORD: password INVENTREE_DB_HOST: "127.0.0.1" INVENTREE_DB_PORT: 5432 - INVENTREE_DEBUG: true + INVENTREE_DEBUG: False INVENTREE_LOG_LEVEL: WARNING INVENTREE_PLUGINS_ENABLED: false diff --git a/src/backend/InvenTree/report/models.py b/src/backend/InvenTree/report/models.py index 30e79c0ad0..9500d82ecf 100644 --- a/src/backend/InvenTree/report/models.py +++ b/src/backend/InvenTree/report/models.py @@ -15,6 +15,7 @@ from django.template import Context, Template from django.template.exceptions import TemplateDoesNotExist from django.template.loader import render_to_string from django.test.client import RequestFactory +from django.test.utils import override_settings from django.urls import reverse from django.utils.translation import gettext_lazy as _ @@ -43,13 +44,18 @@ except OSError as err: # pragma: no cover logger = structlog.getLogger('inventree') +MOCK_PRINT_HOST = 'localhost' + + +@override_settings(SITE_URL=MOCK_PRINT_HOST) def dummy_print_request() -> HttpRequest: """Generate a dummy HTTP request object. - This is required for internal print calls, as WeasyPrint *requires* a request object. + - This is required for internal print calls, as WeasyPrint *requires* a request object. + - Additionally, we have to mock the HOST header, as WeasyPrint requires a valid HOST URL. """ factory = RequestFactory() - request = factory.get('/') + request = factory.get('/', headers={'host': MOCK_PRINT_HOST}) request.user = AnonymousUser() return request