Changeset 6778 for TI12-security/trunk


Ignore:
Timestamp:
26/03/10 14:17:29 (10 years ago)
Author:
pjkersha
Message:

Split unit test module into policy, context, match function test related modules.

Location:
TI12-security/trunk/NDG_XACML/ndg/xacml/test
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/NDG_XACML/ndg/xacml/test/__init__.py

    r6740 r6778  
    1010__contact__ = "Philip.Kershaw@stfc.ac.uk" 
    1111__revision__ = "$Id: $" 
     12from os import path 
     13 
     14THIS_DIR = path.dirname(__file__) 
     15XACML_NDGTEST1_FILENAME = "ndg1.xml" 
     16XACML_NDGTEST1_FILEPATH = path.join(THIS_DIR, XACML_NDGTEST1_FILENAME) 
  • TI12-security/trunk/NDG_XACML/ndg/xacml/test/test_xacml.py

    r6777 r6778  
    2020from ndg.xacml.parsers.etree.factory import ReaderFactory 
    2121 
    22 from ndg.xacml.core.context.pdpinterface import PDPInterface 
    23 from ndg.xacml.core.context.pdp import PDP 
    24 from ndg.xacml.core.context.handler import AbstractContextHandler 
    25 from ndg.xacml.core.attribute import Attribute 
    26 from ndg.xacml.core.attributevalue import AttributeValue 
    27 from ndg.xacml.core.context.request import Request 
    28 from ndg.xacml.core.context.response import Response 
    29 from ndg.xacml.core.context.result import Result, Decision 
    30 from ndg.xacml.core.context.subject import Subject 
    31 from ndg.xacml.core.context.resource import Resource 
    32 from ndg.xacml.core.context.action import Action 
    33  
    34 THIS_DIR = path.dirname(__file__) 
    35 XACML_NDGTEST1_FILENAME = "ndg1.xml" 
    36 XACML_NDGTEST1_FILEPATH = path.join(THIS_DIR, XACML_NDGTEST1_FILENAME) 
     22from ndg.xacml.test import XACML_NDGTEST1_FILEPATH, THIS_DIR 
    3723 
    3824 
     
    267253        policy = PolicyReader.parse(XACML_NDGTEST1_FILEPATH) 
    268254        self.assert_(policy)     
    269                  
    270 class TestContextHandler(AbstractContextHandler): 
    271     """Test implementation of Context Handler""" 
    272      
    273     def __init__(self): 
    274         super(TestContextHandler, self).__init__() 
    275         self.pip = None         
    276          
    277     def handlePEPRequest(self, myRequest): 
    278          
    279         # Convert myRequest to XACML context request 
    280         request = myRequest 
    281          
    282         if self.pdp is None: 
    283             raise TypeError('No "pdp" attribute set') 
    284          
    285         response = self.pdp.evaluate(request) 
    286          
    287         # Convert XACML context response to domain specific request 
    288         myResponse = response 
    289          
    290         return myResponse 
    291      
    292  
    293 class XACMLContextTestCase(unittest.TestCase): 
    294     """Test PDP, PAP, PIP and Context handler""" 
    295      
    296     def _createRequestCtx(self): 
    297         request = Request() 
    298          
    299         subject = Subject() 
    300         subjectAttribute = Attribute() 
    301         subject.attributes.append(subjectAttribute) 
    302         subjectAttribute.attributeId = \ 
    303                             "urn:oasis:names:tc:xacml:1.0:subject:subject-id" 
    304         subjectAttribute.dataType = \ 
    305                             "urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name" 
    306         subjectAttribute.attributeValue = AttributeValue() 
    307         subjectAttribute.attributeValue.value = 'bs@simpsons.com' 
    308          
    309         request.subjects.append(subject) 
    310          
    311         resource = Resource() 
    312         resourceAttribute = Attribute() 
    313         resource.attributes.append(resourceAttribute) 
    314          
    315         resourceAttribute.attributeId = \ 
    316                             "urn:oasis:names:tc:xacml:1.0:resource:resource-id" 
    317                              
    318         resourceAttribute.dataType = "http://www.w3.org/2001/XMLSchema#anyURI" 
    319         resourceAttribute.attributeValue = AttributeValue() 
    320         resourceAttribute.attributeValue.value = \ 
    321                             'file://example/med/record/patient/BartSimpson' 
    322  
    323         request.resources.append(resource) 
    324          
    325         request.action = Action() 
    326         actionAttribute = Attribute() 
    327         request.action.attributes.append(actionAttribute) 
    328          
    329         actionAttribute.attributeId = \ 
    330                                 "urn:oasis:names:tc:xacml:1.0:action:action-id" 
    331         actionAttribute.dataType = "http://www.w3.org/2001/XMLSchema#string" 
    332         actionAttribute.attributeValue = AttributeValue() 
    333         actionAttribute.attributeValue.value = 'read' 
    334          
    335         return request 
    336      
    337     def test01CreateRequest(self): 
    338         requestCtx = self._createRequestCtx() 
    339         self.assert_(requestCtx) 
    340          
    341     def test02CreateResponse(self): 
    342         response = Response() 
    343         result = Result() 
    344         response.results.append(result) 
    345         result.decision = Decision.value = Decision.NOT_APPLICABLE 
    346          
    347     def test03AbstractCtxHandler(self): 
    348         self.assertRaises(TypeError, AbstractContextHandler) 
    349          
    350     def test04CreateCtxHandler(self): 
    351         ctxHandler = TestContextHandler() 
    352          
    353     def test04PDPInterface(self): 
    354         self.assertRaises(TypeError, PDPInterface) 
    355          
    356     def test05CreatePDP(self): 
    357         pdp = PDP() 
    358         self.assert_(pdp) 
    359          
    360     def _createPDPfromPolicy(self): 
    361         pdp = PDP.fromPolicySource(XACML_NDGTEST1_FILEPATH, ReaderFactory) 
    362         return pdp 
    363          
    364     def test06CreatePDPfromPolicy(self): 
    365         pdp = self._createPDPfromPolicy() 
    366         self.assert_(pdp) 
    367          
    368     def test07EvaluatePDP(self): 
    369         request = self._createRequestCtx() 
    370         pdp = self._createPDPfromPolicy() 
    371         response = pdp.evaluate(request) 
    372         self.assert_(response) 
    373          
    374 from ndg.xacml.core.functions import FunctionMap 
    375 from ndg.xacml.core.functions.v2.anyuri_regexp_match import AnyURIRegexpMatch 
    376  
    377  
    378 class FunctionTestCase(unittest.TestCase): 
    379     """Test XACML match functions implementation""" 
    380      
    381     def test01(self):    
    382         funcMap = FunctionMap() 
    383         funcMap.load() 
    384         anyUriMatchNs = \ 
    385             'urn:oasis:names:tc:xacml:2.0:function:anyURI-regexp-match' 
    386              
    387         self.assert_(isinstance(funcMap.get(anyUriMatchNs), AnyURIRegexpMatch)) 
    388255 
    389256         
Note: See TracChangeset for help on using the changeset viewer.