provide simple test for processing request using folder structure
This commit is contained in:
parent
3d10c45222
commit
a16c1dd469
5 changed files with 34 additions and 3 deletions
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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
26
tests/tlib_server.py
Normal 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'])
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue