Changeset 5519


Ignore:
Timestamp:
27/07/09 10:29:41 (10 years ago)
Author:
pjkersha
Message:

Unit tested ElementTree SOAP implementation using paste.fixture.

Location:
TI12-security/trunk/python
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.common/ndg/security/common/saml/xml/__init__.py

    r5514 r5519  
    122122     
    123123    #  SOAP 1.1 Envelope XML namespace. 
    124     SOAP11ENV_NS = "http:#schemas.xmlsoap.org/soap/envelope/" 
     124    SOAP11ENV_NS = "http://schemas.xmlsoap.org/soap/envelope/" 
    125125     
    126126    #  SOAP 1.1 Envelope QName prefix. 
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/unit/attributeauthority/saml/test_samlinterface.py

    r5516 r5519  
    2626    XSGroupRoleAttributeValueETreeObject 
    2727 
     28from ndg.security.common.soap import SOAPEnvelope() 
     29 
     30 
    2831class Request(object): 
    2932    pass 
     
    3740class SamlSoapBindingMiddleware(object): 
    3841    def __call__(self, environ, start_response): 
    39         pass 
     42        soapResponse = SOAPEnvelope() 
     43        response = soapResponse.serialize() 
     44        start_response("200 OK", 
     45                       [('Content-length', str(len(response))), 
     46                        ('Content-type', 'text/xml')]) 
     47        return response 
    4048 
    4149         
     
    5159         
    5260 
    53     def test01Catch401WithNotLoggedIn(self): 
    54         response = self.app.get('/test_401WithNotLoggedIn') 
    55         self.assert_(response.status == 302) 
     61    def test02Skip200WithLoggedIn(self): 
     62        response = self.app.post('/attributeauthority/saml',  
     63                                  params='',  
     64                                  headers=None,  
     65                                  extra_environ=None, 
     66                                  status=None,  
     67                                  upload_files=None,  
     68                                  expect_errors=False) 
    5669         
    57         try: 
    58             redirectResponse = response.follow() 
    59         except paste.fixture.AppError, e: 
    60             self.failIf('404 Not found' not in str(e),  
    61                         "Expecting 404 Not found") 
    62  
    63     def test02Skip200WithLoggedIn(self): 
    64         response = self.app.get('/test_200WithLoggedIn', 
    65                                 extra_environ={'REMOTE_USER': 'testuser'}) 
    66  
    67     def test03Catch401WithLoggedIn(self): 
    68         response = self.app.get('/test_401WithLoggedIn',  
    69                                 extra_environ={'REMOTE_USER': 'testuser'}, 
    70                                 status=401) 
    71          
    72     def test04Catch200WithNotLoggedIn(self): 
    73         response = self.app.get('/test_200WithNotLoggedIn') 
    74         self.assert_(response.status == 302) 
    75          
    76         try: 
    77             redirectResponse = response.follow() 
    78         except paste.fixture.AppError, e: 
    79             self.failIf('404 Not found' not in str(e),  
    80                         "Expecting 404 Not found") 
    81      
    82      
    8370 
    8471if __name__ == "__main__": 
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/unit/soap/test_soap.py

    r5516 r5519  
    1515import unittest 
    1616from cStringIO import StringIO 
     17import paste.fixture 
    1718 
    1819from ndg.security.common.soap import SOAPEnvelope 
    1920 
     21class SOAPBindingMiddleware(object): 
     22    """Simple WSGI interface for SOAP service""" 
     23     
     24    def __call__(self, environ, start_response): 
     25        soapResponse = SOAPEnvelope() 
     26        soapResponse.create() 
     27         
     28        response = soapResponse.serialize() 
     29        start_response("200 OK", 
     30                       [('Content-length', str(len(response))), 
     31                        ('Content-type', 'text/xml')]) 
     32        return [response] 
     33     
     34     
    2035class SOAPTestCase(unittest.TestCase): 
     36     
     37    def __init__(self, *args, **kwargs): 
     38        """Use paste.fixture to test client/server SOAP interface""" 
     39        wsgiApp = SOAPBindingMiddleware() 
     40        self.app = paste.fixture.TestApp(wsgiApp) 
     41          
     42        unittest.TestCase.__init__(self, *args, **kwargs) 
     43         
    2144    def test01Envelope(self): 
    2245        envelope = SOAPEnvelope() 
     
    3861        soap2 = envelope2.serialize() 
    3962        self.assert_(soap2 == soap) 
    40      
     63 
     64    def test02SendRequest(self): 
     65        requestEnvelope = SOAPEnvelope() 
     66        requestEnvelope.create() 
     67        request = requestEnvelope.serialize() 
     68         
     69        response = self.app.post('/my-soap-endpoint',  
     70                                 params=request,  
     71                                 status=200) 
     72        print(response.headers) 
     73        print(response.status) 
     74        print(response.body) 
     75 
     76 
    4177if __name__ == "__main__": 
    4278    unittest.main() 
Note: See TracChangeset for help on using the changeset viewer.