source: TI12-security/trunk/python/ndg.security.test/ndg/security/test/SecurityCGItest.py @ 2322

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI12-security/trunk/python/ndg.security.test/ndg/security/test/SecurityCGItest.py@2322
Revision 2322, 3.8 KB checked in by pjkersha, 15 years ago (diff)

Tests/SecurityCGItest.py moved to unittest package ndg.security.test/ndg/security/test

Tests/dewsBinaryDataGet/binaryDataGet.py and Tests/dewsBinaryDataGet/binaryDataServe.py: tests for DEWS trying
out digital signature of a GET URI to authenticate a client for transfer of large binary data sets.

  • Property svn:executable set to *
Line 
1#!/usr/bin/env python
2"""NDG Logging class test harness
3
4NERC Data Grid Project
5
6P J Kershaw 27/07/06
7
8Copyright (C) 2006 CCLRC & NERC
9
10This software may be distributed under the terms of the Q Public License,
11version 1.0 or later.
12"""
13import unittest
14import os
15import base64
16from datetime import datetime
17from datetime import timedelta
18from ndg.security.server.Session import UserSession, UserSessionError
19
20from ndg.security.SecurityCGI import IdentityProviderSecurityCGI, \
21    ServiceProviderSecurityCGI, SecurityCGIError
22   
23
24class SecurityCGItestCase(unittest.TestCase):
25
26    def setUp(self):
27        self.returnURI = "https://gabriel.bnsc.rl.ac.uk/sp.py"
28       
29        smWSDLuri = "http://gabriel.bnsc.rl.ac.uk/sessionMgr.wsdl"
30        aaWSDLuri = "http://gabriel.bnsc.rl.ac.uk/attAuthority.wsdl"
31       
32        smCertFilePath = "/usr/local/NDG/conf/certs/gabriel-sm-cert.pem"
33        aaCertFilePath = "/usr/local/NDG/conf/certs/gabriel-aa-cert.pem"
34   
35        clntCertFilePath = "./Junk-cert.pem"
36        clntPriKeyFilePath = "./Junk-key.pem"
37        clntPriKeyPwd = open('./tmp2').read().strip()
38       
39        self.idpCGI = IdentityProviderSecurityCGI(os.path.basename(__file__),
40                                        smWSDLuri,
41                                        smCertFilePath=smCertFilePath,
42                                        clntCertFilePath=clntCertFilePath,
43                                        clntPriKeyFilePath=clntPriKeyFilePath,
44                                        clntPriKeyPwd=clntPriKeyPwd)
45       
46        self.spCGI = ServiceProviderSecurityCGI(os.path.basename(__file__),
47                                        self.returnURI,
48                                        aaWSDLuri,
49                                        aaCertFilePath=aaCertFilePath,
50                                        clntCertFilePath=clntCertFilePath,
51                                        clntPriKeyFilePath=clntPriKeyFilePath,
52                                        clntPriKeyPwd=clntPriKeyPwd)
53       
54        tagsDict = {}.fromkeys(UserSession.cookieTags,
55                               base64.urlsafe_b64encode(os.urandom(64)))
56        dtExpiry = datetime.utcnow() + timedelta(seconds=7200)
57        self.sessCookie = UserSession.createSecurityCookie(dtExpiry=dtExpiry,
58                                                           **tagsDict)
59
60
61    def testIdPshowLogin(self):
62       
63        try:
64            self.idpCGI.showLogin()
65           
66        except Exception, e:
67            self.fail(str(e))
68
69    def testSPshowIdPsiteSelect(self):
70       
71        try:
72            self.spCGI.showIdPsiteSelect()
73           
74        except Exception, e:
75            self.fail(str(e))
76
77    def testSPonCredsSet(self):
78       
79        try:           
80            self.spCGI.onCredsSet(sessCookie=self.sessCookie)
81           
82        except Exception, e:
83            self.fail(str(e))
84
85    def test_returnCredsResponse(self):
86       
87        try:
88            self.idpCGI._returnCredsResponse(self.sessCookie,
89                         self.returnURI,
90                         setCookie=True,
91                         pageTitle="Return Creds Unit Test",
92                         redirectMsg="Unit Test: Redirecting Credentials")
93           
94        except Exception, e:
95            self.fail(str(e))
96
97           
98#_____________________________________________________________________________       
99class SecurityCGItestSuite(unittest.TestSuite):
100   
101    def __init__(self):
102        map = map(SecurityCGItestCase,
103                  (
104                    "testIdPshowLogin",
105                    "testSPshowIdPsiteSelect",
106                    "testSPshowCredsReceived",
107                  ))
108        unittest.TestSuite.__init__(self, map)
109           
110                                                   
111if __name__ == "__main__":
112    unittest.main()
Note: See TracBrowser for help on using the repository browser.