Ignore:
Timestamp:
30/11/09 16:30:24 (11 years ago)
Author:
pjkersha
Message:

Re-issue 1.3.3 release:

  • uses SQLAlchemy test user database for authz_lite integration tests
  • important fix for ndg.security.common.saml_utils.bindings.AttributeQuerySOAPBinding: set 'nameFormat' attribute not 'format' for attributes in AttributeQuery?.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg_security_test/ndg/security/test/unit/__init__.py

    r6052 r6067  
    1414import socket 
    1515logging.basicConfig() 
     16log = logging.getLogger(__name__) 
    1617 
    1718import os 
     
    2930mkDataDirPath = lambda file:join(TEST_CONFIG_DIR, file) 
    3031 
     32from ndg.security.common.X509 import X500DN 
    3133from ndg.security.test.unit.wsgi import PasteDeployAppServer 
    3234 
     
    101103    MD5_PASSWORD = md5(PASSWORD).hexdigest() 
    102104     
    103     OPENID_URI_STEM = 'https://openid.localhost/' 
     105    OPENID_URI_STEM = 'https://localhost:7443/openid/' 
    104106    OPENID_IDENTIFIER = 'philip.kershaw' 
    105107    OPENID_URI = OPENID_URI_STEM + OPENID_IDENTIFIER 
     
    122124    N_ATTRIBUTE_VALUES = len(ATTRIBUTE_VALUES) 
    123125     
    124     VALID_REQUESTOR_IDS = ("/O=Site A/CN=Authorisation Service",  
    125                            "/O=Site B/CN=Authorisation Service") 
     126    VALID_REQUESTOR_IDS = ( 
     127        X500DN.fromString("/O=Site A/CN=Authorisation Service"),  
     128        X500DN.fromString("/O=Site B/CN=Authorisation Service"), 
     129        X500DN.fromString('/CN=test/O=NDG/OU=BADC') 
     130    ) 
    126131     
    127132    SSL_PEM_FILENAME = 'localhost.pem' 
     
    202207                service.terminateThread() 
    203208  
    204     def initDb(self): 
     209    @classmethod 
     210    def initDb(cls): 
    205211        """Wrapper to _createDb - Create database only if it doesn't already  
    206212        exist""" 
    207         if not os.path.isfile(BaseTestCase.DB_FILEPATH): 
    208             self._createDb() 
    209              
    210     def _createDb(self): 
     213        if not os.path.isfile(cls.DB_FILEPATH): 
     214            cls._createDb() 
     215         
     216    @classmethod   
     217    def _createDb(cls): 
    211218        """Create a test SQLite database with SQLAlchemy for use with unit  
    212219        tests 
    213220        """ 
     221        log.debug("Creating database for %r ..." % cls.__name__) 
     222         
    214223        if not sqlAlchemyInstalled: 
    215224            raise NotImplementedError("SQLAlchemy must be installed in order " 
    216225                                      "for this method to be implemented") 
    217226             
    218         db = create_engine(BaseTestCase.DB_CONNECTION_STR) 
     227        db = create_engine(cls.DB_CONNECTION_STR) 
    219228         
    220229        metadata = MetaData() 
     
    231240        attributesTable = Table('attributes', metadata, 
    232241                                Column('id', Integer, primary_key=True), 
    233                                 Column('username', String), 
     242                                Column('openid', String), 
    234243                                Column('attributename', String)) 
    235244        metadata.create_all(db) 
     
    261270         
    262271            id = Column(Integer, primary_key=True) 
    263             username = Column('username', String(40)) 
     272            openid = Column('openid', String(128)) 
    264273            attributename = Column('attributename', String(40)) 
    265274         
    266             def __init__(self, username, attributename): 
    267                 self.username = username 
     275            def __init__(self, openid, attributename): 
     276                self.openid = openid 
    268277                self.attributename = attributename 
    269                  
     278 
    270279        Session = sessionmaker(bind=db) 
    271280        session = Session() 
    272281         
    273         attributes = [Attribute(BaseTestCase.USERNAME, attrVal) 
    274                       for attrVal in BaseTestCase.ATTRIBUTE_VALUES] 
     282        attributes = [Attribute(cls.OPENID_URI, attrVal) 
     283                      for attrVal in cls.ATTRIBUTE_VALUES] 
    275284        session.add_all(attributes) 
    276              
    277         user = User(BaseTestCase.USERNAME,  
    278                     BaseTestCase.MD5_PASSWORD, 
    279                     BaseTestCase.OPENID_URI, 
    280                     BaseTestCase.OPENID_IDENTIFIER, 
    281                     BaseTestCase.FIRSTNAME, 
    282                     BaseTestCase.LASTNAME, 
    283                     BaseTestCase.EMAILADDRESS) 
     285            
     286        user = User(cls.USERNAME,  
     287                    cls.MD5_PASSWORD, 
     288                    cls.OPENID_URI, 
     289                    cls.OPENID_IDENTIFIER, 
     290                    cls.FIRSTNAME, 
     291                    cls.LASTNAME, 
     292                    cls.EMAILADDRESS) 
    284293         
    285294        session.add(user) 
Note: See TracChangeset for help on using the changeset viewer.