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