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

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

Updated for epydoc: added double underscore vars module info

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