feat: add platform detail/edit admin UI and service enhancements
- Add platform detail and edit admin pages with templates and JS - Add ContentPageService methods: list_all_platform_pages, list_all_vendor_defaults - Deprecate /admin/platform-homepage route (redirects to /admin/platforms) - Add migration to fix content_page nullable columns - Refine platform and vendor context middleware - Add platform context middleware unit tests - Update platforms.js with improved functionality - Add section-based homepage plan documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
1002
tests/unit/middleware/test_platform_context.py
Normal file
1002
tests/unit/middleware/test_platform_context.py
Normal file
File diff suppressed because it is too large
Load Diff
@@ -103,6 +103,9 @@ class TestVendorContextManager:
|
||||
request = Mock(spec=Request)
|
||||
request.headers = {"host": "localhost"}
|
||||
request.url = Mock(path="/vendor/vendor1/shop")
|
||||
# Set platform_clean_path to simulate PlatformContextMiddleware output
|
||||
request.state = Mock()
|
||||
request.state.platform_clean_path = "/vendor/vendor1/shop"
|
||||
|
||||
context = VendorContextManager.detect_vendor_context(request)
|
||||
|
||||
@@ -117,6 +120,9 @@ class TestVendorContextManager:
|
||||
request = Mock(spec=Request)
|
||||
request.headers = {"host": "localhost"}
|
||||
request.url = Mock(path="/vendors/vendor1/shop")
|
||||
# Set platform_clean_path to simulate PlatformContextMiddleware output
|
||||
request.state = Mock()
|
||||
request.state.platform_clean_path = "/vendors/vendor1/shop"
|
||||
|
||||
context = VendorContextManager.detect_vendor_context(request)
|
||||
|
||||
@@ -131,6 +137,9 @@ class TestVendorContextManager:
|
||||
request = Mock(spec=Request)
|
||||
request.headers = {"host": "localhost"}
|
||||
request.url = Mock(path="/random/path")
|
||||
# Set platform_clean_path to None to use url.path
|
||||
request.state = Mock()
|
||||
request.state.platform_clean_path = None
|
||||
|
||||
context = VendorContextManager.detect_vendor_context(request)
|
||||
|
||||
@@ -141,6 +150,8 @@ class TestVendorContextManager:
|
||||
request = Mock(spec=Request)
|
||||
request.headers = {"host": "admin.platform.com"}
|
||||
request.url = Mock(path="/")
|
||||
request.state = Mock()
|
||||
request.state.platform_clean_path = None
|
||||
|
||||
with patch("middleware.vendor_context.settings") as mock_settings:
|
||||
mock_settings.platform_domain = "platform.com"
|
||||
@@ -154,6 +165,8 @@ class TestVendorContextManager:
|
||||
request = Mock(spec=Request)
|
||||
request.headers = {"host": "www.platform.com"}
|
||||
request.url = Mock(path="/")
|
||||
request.state = Mock()
|
||||
request.state.platform_clean_path = None
|
||||
|
||||
with patch("middleware.vendor_context.settings") as mock_settings:
|
||||
mock_settings.platform_domain = "platform.com"
|
||||
@@ -167,6 +180,8 @@ class TestVendorContextManager:
|
||||
request = Mock(spec=Request)
|
||||
request.headers = {"host": "api.platform.com"}
|
||||
request.url = Mock(path="/")
|
||||
request.state = Mock()
|
||||
request.state.platform_clean_path = None
|
||||
|
||||
with patch("middleware.vendor_context.settings") as mock_settings:
|
||||
mock_settings.platform_domain = "platform.com"
|
||||
@@ -180,6 +195,8 @@ class TestVendorContextManager:
|
||||
request = Mock(spec=Request)
|
||||
request.headers = {"host": "localhost"}
|
||||
request.url = Mock(path="/")
|
||||
request.state = Mock()
|
||||
request.state.platform_clean_path = None
|
||||
|
||||
with patch("middleware.vendor_context.settings") as mock_settings:
|
||||
mock_settings.platform_domain = "platform.com"
|
||||
@@ -1004,6 +1021,8 @@ class TestEdgeCases:
|
||||
request = Mock(spec=Request)
|
||||
request.headers = {"host": ""}
|
||||
request.url = Mock(path="/")
|
||||
request.state = Mock()
|
||||
request.state.platform_clean_path = None
|
||||
|
||||
context = VendorContextManager.detect_vendor_context(request)
|
||||
|
||||
@@ -1014,6 +1033,8 @@ class TestEdgeCases:
|
||||
request = Mock(spec=Request)
|
||||
request.headers = {}
|
||||
request.url = Mock(path="/")
|
||||
request.state = Mock()
|
||||
request.state.platform_clean_path = None
|
||||
|
||||
context = VendorContextManager.detect_vendor_context(request)
|
||||
|
||||
@@ -1024,6 +1045,8 @@ class TestEdgeCases:
|
||||
request = Mock(spec=Request)
|
||||
request.headers = {"host": "localhost"}
|
||||
request.url = Mock(path="/vendor/vendor1/")
|
||||
request.state = Mock()
|
||||
request.state.platform_clean_path = "/vendor/vendor1/"
|
||||
|
||||
context = VendorContextManager.detect_vendor_context(request)
|
||||
|
||||
@@ -1036,6 +1059,8 @@ class TestEdgeCases:
|
||||
request = Mock(spec=Request)
|
||||
request.headers = {"host": "localhost"}
|
||||
request.url = Mock(path="/vendor/vendor1")
|
||||
request.state = Mock()
|
||||
request.state.platform_clean_path = "/vendor/vendor1"
|
||||
|
||||
context = VendorContextManager.detect_vendor_context(request)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user