| 1 |  |  | """Test HTTP capabilities of the core's frontend.""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 | 1 |  | from ppp_libmodule.tests import PPPTestCase | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 | 1 |  | from ppp_libmodule.http import HttpRequestHandler | 
            
                                                                                                            
                            
            
                                    
            
            
                | 5 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 6 | 1 |  | r = None | 
            
                                                                                                            
                            
            
                                    
            
            
                | 7 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 8 | 1 |  | class RequestHandler: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 9 | 1 |  |     def __init__(self, request): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 10 |  |  |         global r | 
            
                                                                                                            
                            
            
                                    
            
            
                | 11 | 1 |  |         r = request | 
            
                                                                                                            
                            
            
                                    
            
            
                | 12 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 13 | 1 |  |     def answer(self): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 14 | 1 |  |         return [] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 15 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 16 | 1 |  | def app(environ, start_response): | 
            
                                                                                                            
                            
            
                                    
            
            
                | 17 |  |  |     """Function called by the WSGI server.""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 18 | 1 |  |     r = HttpRequestHandler(environ, start_response, RequestHandler).dispatch() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 19 | 1 |  |     return r | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 20 |  |  |  | 
            
                                                        
            
                                    
            
            
                | 21 | 1 |  | class HttpTest(PPPTestCase(app)): | 
            
                                                        
            
                                    
            
            
                | 22 | 1 |  |     def testPostOnly(self): | 
            
                                                        
            
                                    
            
            
                | 23 | 1 |  |         self.assertEqual(self.app.get('/', status='*').status_int, 405) | 
            
                                                        
            
                                    
            
            
                | 24 | 1 |  |         self.assertEqual(self.app.put('/', status='*').status_int, 405) | 
            
                                                        
            
                                    
            
            
                | 25 | 1 |  |     def testNotRoot(self): | 
            
                                                        
            
                                    
            
            
                | 26 | 1 |  |         self.assertEqual(self.app.post_json('/foo', {}, status='*').status_int, 400) | 
            
                                                        
            
                                    
            
            
                | 27 | 1 |  |     def testNotJson(self): | 
            
                                                        
            
                                    
            
            
                | 28 | 1 |  |         self.assertEqual(self.app.post('/', 'foobar', status='*').status_int, 400) | 
            
                                                        
            
                                    
            
            
                | 29 | 1 |  |     def testWorking(self): | 
            
                                                        
            
                                    
            
            
                | 30 |  |  |         global r | 
            
                                                        
            
                                    
            
            
                | 31 | 1 |  |         q = {'id': '1', 'language': 'en', 'tree': {'type': 'triple', | 
            
                                                        
            
                                    
            
            
                | 32 |  |  |              'subject': {'type': 'resource', 'value': 'foo'}, | 
            
                                                        
            
                                    
            
            
                | 33 |  |  |              'predicate': {'type': 'resource', 'value': 'bar'}, | 
            
                                                        
            
                                    
            
            
                | 34 |  |  |              'object': {'type': 'resource', 'value': 'baz'}}, | 
            
                                                        
            
                                    
            
            
                | 35 |  |  |               'measures': {}, 'trace': []} | 
            
                                                        
            
                                    
            
            
                | 36 | 1 |  |         r = None | 
            
                                                        
            
                                    
            
            
                | 37 | 1 |  |         self.assertResponse(q, []) | 
            
                                                        
            
                                    
            
            
                | 38 | 1 |  |         self.assertEqual(r.as_dict(), q) | 
            
                                                        
            
                                    
            
            
                | 39 | 1 |  |     def testNoTree(self): | 
            
                                                        
            
                                    
            
            
                | 40 | 1 |  |         q = {'language': 'en'} | 
            
                                                        
            
                                    
            
            
                | 41 |  |  |         self.assertStatusInt(q, 400) | 
            
                                                        
            
                                    
            
            
                | 42 |  |  |  |