From a16c1dd4695231f146dc63ff11466e652e03b2b5 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 13 Mar 2024 12:14:54 +0100 Subject: [PATCH] provide simple test for processing request using folder structure --- scopes/server/app.py | 2 -- scopes/server/browser.py | 2 ++ tests/test_standard.py | 6 +++++- tests/tlib_server.py | 26 ++++++++++++++++++++++++++ tests/tlib_storage.py | 1 + 5 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 tests/tlib_server.py diff --git a/scopes/server/app.py b/scopes/server/app.py index 4dedf6f..8127265 100644 --- a/scopes/server/app.py +++ b/scopes/server/app.py @@ -1,11 +1,9 @@ # scopes.server.app -import json from zope.publisher.base import DefaultPublication from zope.publisher.browser import BrowserRequest from zope.publisher.interfaces import NotFound from zope.publisher.publish import publish -from zope.traversing.publicationtraverse import PublicationTraverser from scopes.interfaces import ITraversable, IView from scopes.server.browser import getView diff --git a/scopes/server/browser.py b/scopes/server/browser.py index 83bc04f..3b44da4 100644 --- a/scopes/server/browser.py +++ b/scopes/server/browser.py @@ -27,6 +27,7 @@ def getView(request, ob, name): @register(None, 'index.html') +@register(None, 'index.json') @implementer(IView) class DefaultView: @@ -39,5 +40,6 @@ class DefaultView: result = dict(head=ob.head, data=ob.data) if IContainer.providedBy(ob): result['items'] = list(ob.keys()) + print('***', result) return json.dumps(result) diff --git a/tests/test_standard.py b/tests/test_standard.py index fb54e0a..82bd8a9 100644 --- a/tests/test_standard.py +++ b/tests/test_standard.py @@ -3,7 +3,7 @@ """Tests for the 'scopes.storage' package.""" import unittest -import tlib_storage +import tlib_server, tlib_storage from scopes.storage.common import StorageFactory import config @@ -21,6 +21,10 @@ class Test(unittest.TestCase): def test_002_folder(self): tlib_storage.test_folder(self, config) + def test_003_server(self): + tlib_server.test_app(self, config) + + def suite(): return unittest.TestSuite(( unittest.TestLoader().loadTestsFromTestCase(Test), diff --git a/tests/tlib_server.py b/tests/tlib_server.py new file mode 100644 index 0000000..aaff8c0 --- /dev/null +++ b/tests/tlib_server.py @@ -0,0 +1,26 @@ +# tests/tlib_server.py + +"""Test implementation for the `scopes.server` package.""" + +import json +from zope.publisher.browser import TestRequest +from zope.publisher.publish import publish + +from scopes.server.app import Publication +from scopes.storage.folder import Root + + +def publishRequest(config, storage, path): + appRoot = Root(storage, config) + request = TestRequest(environ=dict(PATH_INFO=path)) + request.setPublication(Publication(appRoot)) + request = publish(request, False) + return request.response + + +def test_app(self, config): + storage = config.storageFactory(config.dbschema) + response = publishRequest(config, storage, '/top') + result = json.loads(response.consumeBody()) + self.assertEqual(result['items'], ['child1']) + diff --git a/tests/tlib_storage.py b/tests/tlib_storage.py index 5b937d9..57c5ff3 100644 --- a/tests/tlib_storage.py +++ b/tests/tlib_storage.py @@ -1,4 +1,5 @@ # tests/tlib_storage.py + """Test implementation for the `scopes.storage` package.""" from datetime import datetime