provide simple test for processing request using folder structure

This commit is contained in:
Helmut Merz 2024-03-13 12:14:54 +01:00
parent 3d10c45222
commit a16c1dd469
5 changed files with 34 additions and 3 deletions

View file

@ -1,11 +1,9 @@
# scopes.server.app # scopes.server.app
import json
from zope.publisher.base import DefaultPublication from zope.publisher.base import DefaultPublication
from zope.publisher.browser import BrowserRequest from zope.publisher.browser import BrowserRequest
from zope.publisher.interfaces import NotFound from zope.publisher.interfaces import NotFound
from zope.publisher.publish import publish from zope.publisher.publish import publish
from zope.traversing.publicationtraverse import PublicationTraverser
from scopes.interfaces import ITraversable, IView from scopes.interfaces import ITraversable, IView
from scopes.server.browser import getView from scopes.server.browser import getView

View file

@ -27,6 +27,7 @@ def getView(request, ob, name):
@register(None, 'index.html') @register(None, 'index.html')
@register(None, 'index.json')
@implementer(IView) @implementer(IView)
class DefaultView: class DefaultView:
@ -39,5 +40,6 @@ class DefaultView:
result = dict(head=ob.head, data=ob.data) result = dict(head=ob.head, data=ob.data)
if IContainer.providedBy(ob): if IContainer.providedBy(ob):
result['items'] = list(ob.keys()) result['items'] = list(ob.keys())
print('***', result)
return json.dumps(result) return json.dumps(result)

View file

@ -3,7 +3,7 @@
"""Tests for the 'scopes.storage' package.""" """Tests for the 'scopes.storage' package."""
import unittest import unittest
import tlib_storage import tlib_server, tlib_storage
from scopes.storage.common import StorageFactory from scopes.storage.common import StorageFactory
import config import config
@ -21,6 +21,10 @@ class Test(unittest.TestCase):
def test_002_folder(self): def test_002_folder(self):
tlib_storage.test_folder(self, config) tlib_storage.test_folder(self, config)
def test_003_server(self):
tlib_server.test_app(self, config)
def suite(): def suite():
return unittest.TestSuite(( return unittest.TestSuite((
unittest.TestLoader().loadTestsFromTestCase(Test), unittest.TestLoader().loadTestsFromTestCase(Test),

26
tests/tlib_server.py Normal file
View file

@ -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'])

View file

@ -1,4 +1,5 @@
# tests/tlib_storage.py # tests/tlib_storage.py
"""Test implementation for the `scopes.storage` package.""" """Test implementation for the `scopes.storage` package."""
from datetime import datetime from datetime import datetime