1 """NDG XACML unit test package
2
3 NERC DataGrid
4 """
5 __author__ = "P J Kershaw"
6 __date__ = "16/03/10"
7 __copyright__ = "(C) 2010 Science and Technology Facilities Council"
8 __contact__ = "Philip.Kershaw@stfc.ac.uk"
9 __license__ = "BSD - see LICENSE file in top-level directory"
10 __contact__ = "Philip.Kershaw@stfc.ac.uk"
11 __revision__ = "$Id: __init__.py 8011 2012-02-08 11:44:34Z rwilkinson $"
12 from os import path
13
14 from ndg.xacml.core.attributevalue import (AttributeValueClassFactory,
15 AttributeValue)
16 from ndg.xacml.core.functions.v1.bag import BagBase
17 from ndg.xacml.core.functions.v1.at_least_one_member_of import \
18 AtLeastOneMemberOfBase
19
20 from ndg.xacml.parsers import XMLParseError
21 from ndg.xacml.parsers.etree import QName
22 from ndg.xacml.parsers.etree.attributevaluereader import (
23 DataTypeReaderClassFactory,
24 ETreeDataTypeReaderBase)
25
26 THIS_DIR = path.dirname(__file__)
27 XACML_NDGTEST1_FILENAME = "ndg1.xml"
28 XACML_NDGTEST1_FILEPATH = path.join(THIS_DIR, XACML_NDGTEST1_FILENAME)
29 XACML_ESGFTEST1_FILENAME = "esgf1.xml"
30 XACML_ESGFTEST1_FILEPATH = path.join(THIS_DIR, XACML_ESGFTEST1_FILENAME)
31 XACML_ATTRIBUTESELECTOR1_FILENAME = 'policy_attributeselector_1.xml'
32 XACML_ATTRIBUTESELECTOR1_FILEPATH = path.join(THIS_DIR,
33 XACML_ATTRIBUTESELECTOR1_FILENAME)
34 XACML_ATTRIBUTESELECTOR2_FILENAME = 'policy_attributeselector_2.xml'
35 XACML_ATTRIBUTESELECTOR2_FILEPATH = path.join(THIS_DIR,
36 XACML_ATTRIBUTESELECTOR2_FILENAME)
37 XACML_ATTRIBUTESELECTOR3_FILENAME = 'policy_attributeselector_3.xml'
38 XACML_ATTRIBUTESELECTOR3_FILEPATH = path.join(THIS_DIR,
39 XACML_ATTRIBUTESELECTOR3_FILENAME)
40 XACML_ATTRIBUTESELECTOR4_FILENAME = 'policy_attributeselector_4.xml'
41 XACML_ATTRIBUTESELECTOR4_FILEPATH = path.join(THIS_DIR,
42 XACML_ATTRIBUTESELECTOR4_FILENAME)
43 XACML_ATTRIBUTESELECTOR5_FILENAME = 'policy_attributeselector_5.xml'
44 XACML_ATTRIBUTESELECTOR5_FILEPATH = path.join(THIS_DIR,
45 XACML_ATTRIBUTESELECTOR5_FILENAME)
46 XACML_ATTRIBUTESELECTOR6_FILENAME = 'policy_attributeselector_6.xml'
47 XACML_ATTRIBUTESELECTOR6_FILEPATH = path.join(THIS_DIR,
48 XACML_ATTRIBUTESELECTOR6_FILENAME)
49 XACML_FIRSTAPPLICABLE_FILENAME = "firstapplicable.xml"
50 XACML_FIRSTAPPLICABLE_FILEPATH = path.join(THIS_DIR,
51 XACML_FIRSTAPPLICABLE_FILENAME)
52 XACML_SUBJECTMATCH_FILENAME = "subjectmatch.xml"
53 XACML_SUBJECTMATCH_FILEPATH = path.join(THIS_DIR, XACML_SUBJECTMATCH_FILENAME)
57 """Example Custom Attribute Value"""
58 IDENTIFIER = 'urn:grouprole'
59 TYPE = dict
60 GROUPROLE_ELEMENT_LOCAL_NAME = 'groupRole'
61 GROUP_ELEMENT_LOCAL_NAME = 'group'
62 ROLE_ELEMENT_LOCAL_NAME = 'role'
63 ROLE_DEFAULT_VALUE = 'default'
64
65 __slots__ = ('group', 'role')
66
71
72 @property
74 """Override default value property to give custom result. Also,
75 'value' becomes a read-only property. Making this change is critical
76 to the function of the GroupRoleAtLeastOneMemberOf class below - it
77 relies on being able to make comparison of the value attribute of
78 different GroupRoleAttributeValue instances. Defined this way,
79 comparison is by group,role to group,role tuple
80 """
81 return self.group, self.role
82
88
95
98 """Example custom parser to read custom attribute value data type"""
99
100 @classmethod
101 - def parse(cls, elem, attributeValue):
132