Ignore:
Timestamp:
14/12/06 11:03:16 (14 years ago)
Author:
pjkersha
Message:

server/MyProxy.py:

  • getDelegation wrapper to logon fixed to *return* logon output
  • store command calls info first to check if credential already exists for

username given

  • logon method - create proxy cert request BEFORE connecting to server to

avoid confusing the latter if an error occurs in the request.

test/MyProxy/myProxyClientTest.cfg, test/MyProxy/MyProxyClientTest.py:
fixed store and logon tests. Tests now run in a configured order.

Location:
TI12-security/trunk/python/ndg.security.test/ndg/security/test/MyProxy
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/MyProxy/MyProxyClientTest.py

    r1858 r1861  
    1414import os 
    1515import sys 
     16import getpass 
     17import traceback 
    1618 
    1719from ConfigParser import SafeConfigParser 
     
    3133        self.clnt = MyProxyClient(\ 
    3234                          propFilePath=self.cfg['setUp']['propfilepath']) 
     35         
     36 
     37    def test1Store(self): 
     38        '''test1Store: upload X509 cert and private key to repository''' 
     39        ownerPassphrase = self.cfg['test1Store']['ownerpassphrase'] or \ 
     40            getpass.getpass(prompt="\ntest1Store cred. owner pass-phrase: ") 
     41             
     42        try: 
     43            self.clnt.store(self.cfg['test1Store']['username'], 
     44                        self.cfg['test1Store']['ownercertfile'], 
     45                        self.cfg['test1Store']['ownerkeyfile'], 
     46                        ownerCertFile=self.cfg['test1Store']['ownercertfile'], 
     47                        ownerKeyFile=self.cfg['test1Store']['ownerkeyfile'], 
     48                        ownerPassphrase=ownerPassphrase, 
     49                        force=False) 
     50            print "Store creds for user %s" % \ 
     51                    self.cfg['test1Store']['username'] 
     52        except: 
     53            self.fail(traceback.print_exc()) 
    3354     
    3455     
    35     def testGetDelegation(self): 
    36         '''testGetDelegation: retrieve proxy cert./private key''' 
    37         #import pdb;pdb.set_trace() 
    38         import getpass 
    39         passphrase = getpass.getpass() 
    40         proxyCert = self.clnt.getDelegation(\ 
    41                                   self.cfg['testGetDelegation']['username'],  
     56    def test2GetDelegation(self): 
     57        '''test2GetDelegation: retrieve proxy cert./private key''' 
     58        passphrase = self.cfg['test2GetDelegation']['passphrase'] or \ 
     59            getpass.getpass(prompt="\ntest2GetDelegation pass-phrase: ") 
     60          
     61        try:    
     62            creds = self.clnt.getDelegation(\ 
     63                                  self.cfg['test2GetDelegation']['username'],  
    4264                                  passphrase) 
    43         print "proxyCert:\n" + proxyCert 
    44          
     65            print "proxy credentials:"  
     66            print ''.join(creds) 
     67        except: 
     68            self.fail(traceback.print_exc()) 
    4569 
    46     def testStore(self): 
    47         '''testStore: upload X509 cert and private key to repository''' 
    48         self.clnt.store(self.cfg['testStore']['username'], 
    49                           options.certFile, 
    50                           options.keyFile, 
    51                           ownerCertFile=options.certFile, 
    52                           ownerKeyFile=options.keyFile, 
    53                           ownerPassphrase=open('../tmp2').read().strip()) 
    54         print "Store creds for user %s" % username 
    55          
    5670 
    57     def testDestroy(self): 
    58         '''testDestroy: destroy credentials for a given user''' 
    59         self.clnt.destroy(self.cfg['testDestroy']['username'],  
    60                             ownerCertFile=options.certFile, 
    61                             ownerKeyFile=options.keyFile, 
    62                             ownerPassphrase=open('../tmp2').read().strip()) 
    63         print "Destroy creds for user %s" % username 
     71    def test3Info(self): 
     72        '''test3Info: Retrieve information about a given credential''' 
     73        try: 
     74            credExists, errorTxt, fields = clnt.info( 
     75                                 self.cfg['test3Info']['username'], 
     76                                 self.cfg['test3Info']['ownercertfile'], 
     77                                 self.cfg['test3Info']['ownerkeyfile'], 
     78                                 ownerPassphrase=ownerpassphrase) 
     79            print "test3Info... " 
     80            print "credExists: " + credExists 
     81            print "errorTxt: " + errorTxt 
     82            print "fields: " + fields 
     83        except: 
     84            self.fail(traceback.print_exc()) 
    6485 
    65     def testInfo(self): 
    66         '''testInfo: Retrieve information about a given credential''' 
    67         credExists, errorTxt, fields = clnt.info( 
    68                              self.cfg['testInfo']['username'], 
    69                              options.certFile, 
    70                              options.keyFile, 
    71                              ownerPassphrase=open('../tmp2').read().strip()) 
    72         print "testInfo... " 
    73         print "credExists: " + credExists 
    74         print "errorTxt: " + errorTxt 
    75         print "fields: " + fields 
    76          
    7786 
    78     def testChangePassphrase(self):         
    79         """testChangePassphrase: change pass-phrase protecting a given 
     87    def test4ChangePassphrase(self):         
     88        """test4ChangePassphrase: change pass-phrase protecting a given 
    8089        credential""" 
    8190     
    82         self.clnt.changePassphrase( 
    83                              self.cfg['testChangePassphrase']['username'], 
    84                              passphrase, 
    85                              newPassphrase,  
    86                              options.certFile, 
    87                              options.keyFile, 
    88                              ownerPassphrase=open('../tmp2').read().strip()) 
    89         print "Change pass-phrase" 
     91        try: 
     92            self.clnt.changePassphrase( 
     93                         self.cfg['test4ChangePassphrase']['username'], 
     94                         passphrase, 
     95                         newPassphrase,  
     96                         self.cfg['test4ChangePassphrase']['ownercertfile'], 
     97                         self.cfg['test4ChangePassphrase']['ownerkeyfile'], 
     98                         ownerPassphrase=ownerpassphrase) 
     99            print "Change pass-phrase" 
     100        except: 
     101            self.fail(traceback.print_exc()) 
     102 
     103 
     104    def test5Destroy(self): 
     105        '''test5Destroy: destroy credentials for a given user''' 
     106 
     107        ownerPassphrase = self.cfg['test5Destroy']['ownerpassphrase'] or \ 
     108            getpass.getpass(prompt="\ntest5Destroy cred. owner pass-phrase: ") 
     109 
     110        try: 
     111            self.clnt.destroy(self.cfg['test5Destroy']['username'],  
     112                    ownerCertFile=self.cfg['test5Destroy']['ownercertfile'], 
     113                    ownerKeyFile=self.cfg['test5Destroy']['ownerkeyfile'], 
     114                    ownerPassphrase=ownerpassphrase) 
     115            print "Destroy creds for user %s" % username 
     116        except: 
     117            self.fail(traceback.print_exc()) 
    90118         
    91119  
     
    95123        map = map(MyProxyClientTestCase, 
    96124                  ( 
    97                     "testGetDelegation", 
    98                     "testStore", 
    99                     "testDestroy", 
    100                     "testInfo", 
    101                     "testChangePassphrase", 
     125                    "test1Store", 
     126                    "test2GetDelegation", 
     127                    "test3Info", 
     128                    "test4ChangePassphrase", 
     129                    "test5Destroy", 
    102130                  )) 
    103131        unittest.TestSuite.__init__(self, map) 
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/MyProxy/myProxyClientTest.cfg

    r1858 r1861  
    1010propFilePath: ./myProxyProperties.xml 
    1111 
    12 [testGetDelegation] 
     12[test1Store] 
    1313username: sstljakTestUser 
    14  
    15 [testStore] 
    16 username: sstljakTestUser 
    17 certFile: 
    18 keyFile: 
    19 ownerCertFile: 
    20 ownerKeyFile: 
     14certFile: ./userCert.pem 
     15keyFile: ./userKey.pem 
     16ownerCertFile: ./userCert.pem 
     17ownerKeyFile: ./userKey.pem 
    2118ownerPassphrase: 
    2219 
    23 [testDestroy] 
     20[test2GetDelegation] 
     21username: sstljakTestUser 
     22passphrase: 
     23 
     24[test3Info] 
    2425username: sstljakTestUser 
    2526ownerCertFile: 
     
    2728ownerPassphrase: 
    2829 
    29 [testInfo] 
     30[test4ChangePassphrase] 
    3031username: sstljakTestUser 
    3132ownerCertFile: 
     
    3334ownerPassphrase: 
    3435 
    35 [testChangePassphrase] 
     36[test5Destroy] 
    3637username: sstljakTestUser 
    3738ownerCertFile: 
Note: See TracChangeset for help on using the changeset viewer.