Package ndg :: Package xacml :: Package test :: Package context :: Module test_pdp_cmip5
[hide private]

Source Code for Module ndg.xacml.test.context.test_pdp_cmip5

 1  ''' 
 2  Created on 18 Oct 2011 
 3   
 4  @author: rwilkinson 
 5  ''' 
 6  import logging 
 7  import os.path 
 8  import time 
 9  import unittest 
10   
11  from ndg.xacml.parsers.etree.factory import ReaderFactory 
12  from ndg.xacml.core.context.pdp import PDP 
13  from ndg.xacml.core.context.result import Decision 
14  from ndg.xacml.test import THIS_DIR 
15  from ndg.xacml.test.context import XacmlContextBaseTestCase 
16   
17   
18  logging.basicConfig(level=logging.ERROR) 
19   
20 -class Test(XacmlContextBaseTestCase):
21 """Tests with CMIP5 policy. 22 """ 23 RESOURCE_1_ID = 'http://localhost/thredds/dodsC/cmip5.output1.MOHC.HadGEM2-ES.rcp60.day.land.day.r1i1p1.mrsos.20111007.aggregation.dods' 24 RESOURCE_2_ID = 'http://localhost/thredds/dodsC/cmip5.output1.MOHC.HadGEM2-ES.rcp60.day.land.day.r1i1p1.mrsos.20110915.aggregation.dods' 25 RESOURCE_3_ID = 'http://localhost/thredds/fileServer/esg_dataroot/cmip5/output1/MOHC/HadGEM2-ES/rcp60/day/land/day/r1i1p1/v20111007/mrsos/mrsos_day_HadGEM2-ES_rcp60_r1i1p1_20051201-20111130.nc' 26 RESOURCE_4_ID = 'http://localhost/thredds/fileServer/esg_dataroot/cmip5/output1/MOHC/HadGEM2-ES/rcp60/day/land/day/r1i1p1/v20110915/mrsos/mrsos_day_HadGEM2-ES_rcp60_r1i1p1_20051201-20111130.nc' 27 XACML_FILENAME = 'policy_cmip5.xml' 28 XACML_FILEPATH = os.path.join(THIS_DIR, XACML_FILENAME) 29
30 - def setUp(self):
31 print "Setting up" 32 self.pdp = PDP.fromPolicySource(self.__class__.XACML_FILEPATH, ReaderFactory) 33 print "Setup complete"
34 35
36 - def test01(self):
37 request = self._createRequestCtx( 38 self.__class__.RESOURCE_1_ID, 39 subjectRoles=('cmip5_research',)) 40 print "Starting request" 41 start_time = time.time() 42 response = self.pdp.evaluate(request) 43 print("Response received after %fs" % (time.time() - start_time)) 44 self.failIf(response is None, "Null response") 45 for result in response.results: 46 self.failIf(result.decision != Decision.PERMIT, 47 "Expecting Permit decision")
48
49 - def test02(self):
50 request = self._createRequestCtx( 51 self.__class__.RESOURCE_2_ID, 52 subjectRoles=('cmip5_research',)) 53 print "Starting request" 54 start_time = time.time() 55 response = self.pdp.evaluate(request) 56 print("Response received after %fs" % (time.time() - start_time)) 57 self.failIf(response is None, "Null response") 58 for result in response.results: 59 self.failIf(result.decision != Decision.DENY, 60 "Expecting Deny decision")
61
62 - def test03(self):
63 request = self._createRequestCtx( 64 self.__class__.RESOURCE_3_ID, 65 subjectRoles=('cmip5_research',)) 66 print "Starting request" 67 start_time = time.time() 68 response = self.pdp.evaluate(request) 69 print("Response received after %fs" % (time.time() - start_time)) 70 self.failIf(response is None, "Null response") 71 for result in response.results: 72 self.failIf(result.decision != Decision.PERMIT, 73 "Expecting Permit decision")
74
75 - def test04(self):
76 request = self._createRequestCtx( 77 self.__class__.RESOURCE_4_ID, 78 subjectRoles=('cmip5_research',)) 79 print "Starting request" 80 start_time = time.time() 81 response = self.pdp.evaluate(request) 82 print("Response received after %fs" % (time.time() - start_time)) 83 self.failIf(response is None, "Null response") 84 for result in response.results: 85 self.failIf(result.decision != Decision.DENY, 86 "Expecting Deny decision")
87 88 89 90 if __name__ == "__main__": 91 unittest.main() 92