minor improvements; handle NotFound more gracefully
This commit is contained in:
		
							parent
							
								
									a16c1dd469
								
							
						
					
					
						commit
						7b98616008
					
				
					 5 changed files with 11 additions and 7 deletions
				
			
		|  | @ -14,10 +14,10 @@ def zope_app_factory(config): | ||||||
|     storageFactory = config.StorageFactory(config) |     storageFactory = config.StorageFactory(config) | ||||||
|     def zope_app(environ, start_response): |     def zope_app(environ, start_response): | ||||||
|         storage = storageFactory(config.dbschema) |         storage = storageFactory(config.dbschema) | ||||||
|         appRoot = Root(storage, config) |         appRoot = Root(storage) | ||||||
|         request = BrowserRequest(environ['wsgi.input'], environ) |         request = BrowserRequest(environ['wsgi.input'], environ) | ||||||
|         request.setPublication(Publication(appRoot)) |         request.setPublication(Publication(appRoot)) | ||||||
|         request = publish(request, False) |         request = publish(request, True) | ||||||
|         response = request.response |         response = request.response | ||||||
|         start_response(response.getStatusString(), response.getHeaders()) |         start_response(response.getStatusString(), response.getHeaders()) | ||||||
|         return response.consumeBodyIter() |         return response.consumeBodyIter() | ||||||
|  | @ -41,3 +41,9 @@ class Publication(DefaultPublication): | ||||||
|             return ob, () |             return ob, () | ||||||
|         return ob, ('index.html',) |         return ob, ('index.html',) | ||||||
| 
 | 
 | ||||||
|  |     def handleException(self, ob, request, exc_info, retry_allowed=True): | ||||||
|  |         if exc_info[0] != NotFound: | ||||||
|  |             raise | ||||||
|  |         request.response.reset() | ||||||
|  |         request.response.handleException(exc_info) | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  | @ -40,6 +40,5 @@ 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) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -45,8 +45,7 @@ class Root(Folder): | ||||||
|     """A dummy (virtual) root folder for creating real folders |     """A dummy (virtual) root folder for creating real folders | ||||||
|        using the Folder API.""" |        using the Folder API.""" | ||||||
| 
 | 
 | ||||||
|     def __init__(self, storage, config=None): |     def __init__(self, storage): | ||||||
|         self.config = config |  | ||||||
|         cont = storage.create(Folders) |         cont = storage.create(Folders) | ||||||
|         super(Root, self).__init__(container=cont) |         super(Root, self).__init__(container=cont) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ from scopes.storage.folder import Root | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def publishRequest(config, storage, path): | def publishRequest(config, storage, path): | ||||||
|     appRoot = Root(storage, config) |     appRoot = Root(storage) | ||||||
|     request = TestRequest(environ=dict(PATH_INFO=path)) |     request = TestRequest(environ=dict(PATH_INFO=path)) | ||||||
|     request.setPublication(Publication(appRoot)) |     request.setPublication(Publication(appRoot)) | ||||||
|     request = publish(request, False) |     request = publish(request, False) | ||||||
|  |  | ||||||
|  | @ -60,7 +60,7 @@ def test_tracking(self, config): | ||||||
| def test_folder(self, config): | def test_folder(self, config): | ||||||
|         storage = config.storageFactory(config.dbschema) |         storage = config.storageFactory(config.dbschema) | ||||||
|         storage.dropTable('folders') |         storage.dropTable('folders') | ||||||
|         root = folder.Root(storage, config) |         root = folder.Root(storage) | ||||||
|         self.assertEqual(list(root.keys()), []) |         self.assertEqual(list(root.keys()), []) | ||||||
|         root['top'] = folder.Folder() |         root['top'] = folder.Folder() | ||||||
|         self.assertEqual(list(root.keys()), ['top']) |         self.assertEqual(list(root.keys()), ['top']) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue