--- /dev/null
+import data_mock as data
+
+
+def mock_managers(m1):
+ """ Modify the response from Requests module
+ """
+ register_pdp(m1)
+ register_meta_rules(m1)
+ register_policies(m1)
+ register_models(m1)
+ register_policy_subject(m1, "policy_id_1")
+ register_policy_subject(m1, "policy_id_2")
+ register_policy_object(m1, "policy_id_1")
+ register_policy_object(m1, "policy_id_2")
+ register_policy_action(m1, "policy_id_1")
+ register_policy_action(m1, "policy_id_2")
+ register_policy_subject_assignment(m1, "policy_id_1", "subject_id")
+ # register_policy_subject_assignment_list(m1, "policy_id_1")
+ register_policy_subject_assignment(m1, "policy_id_2", "subject_id")
+ # register_policy_subject_assignment_list(m1, "policy_id_2")
+ register_policy_object_assignment(m1, "policy_id_1", "object_id")
+ # register_policy_object_assignment_list(m1, "policy_id_1")
+ register_policy_object_assignment(m1, "policy_id_2", "object_id")
+ # register_policy_object_assignment_list(m1, "policy_id_2")
+ register_policy_action_assignment(m1, "policy_id_1", "action_id")
+ # register_policy_action_assignment_list(m1, "policy_id_1")
+ register_policy_action_assignment(m1, "policy_id_2", "action_id")
+ # register_policy_action_assignment_list(m1, "policy_id_2")
+ register_rules(m1, "policy_id1")
+
+
+def register_pdp(m1):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'pdp'),
+ json={'pdps': data.pdp_mock}
+ )
+
+
+def register_meta_rules(m1):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'meta_rules'),
+ json={'meta_rules': data.meta_rules_mock}
+ )
+
+
+def register_policies(m1):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'policies'),
+ json={'policies': data.policies_mock}
+ )
+
+
+def register_models(m1):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'models'),
+ json={'models': data.models_mock}
+ )
+
+
+def register_policy_subject(m1, policy_id):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}/{}/subjects'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'policies', policy_id),
+ json={'subjects': data.subject_mock[policy_id]}
+ )
+
+
+def register_policy_object(m1, policy_id):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}/{}/objects'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'policies', policy_id),
+ json={'objects': data.object_mock[policy_id]}
+ )
+
+
+def register_policy_action(m1, policy_id):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}/{}/actions'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'policies', policy_id),
+ json={'actions': data.action_mock[policy_id]}
+ )
+
+
+def register_policy_subject_assignment(m1, policy_id, subj_id):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}/{}/subject_assignments/{}'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'policies',
+ policy_id,
+ subj_id),
+ json={'subject_assignments': data.subject_assignment_mock}
+ )
+
+
+def register_policy_subject_assignment_list(m1, policy_id):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}/{}/subject_assignments'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'policies',
+ policy_id),
+ json={'subject_assignments': data.subject_assignment_mock}
+ )
+
+
+def register_policy_object_assignment(m1, policy_id, obj_id):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}/{}/object_assignments/{}'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'policies',
+ policy_id,
+ obj_id),
+ json={'object_assignments': data.object_assignment_mock}
+ )
+
+
+def register_policy_object_assignment_list(m1, policy_id):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}/{}/object_assignments'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'policies',
+ policy_id),
+ json={'object_assignments': data.object_assignment_mock}
+ )
+
+
+def register_policy_action_assignment(m1, policy_id, action_id):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}/{}/action_assignments/{}'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'policies',
+ policy_id,
+ action_id),
+ json={'action_assignments': data.action_assignment_mock}
+ )
+
+
+def register_policy_action_assignment_list(m1, policy_id):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}/{}/action_assignments'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'policies',
+ policy_id),
+ json={'action_assignments': data.action_assignment_mock}
+ )
+
+
+def register_rules(m1, policy_id):
+ m1.register_uri(
+ 'GET', 'http://{}:{}/{}/{}/{}'.format(data.COMPONENTS['manager']['hostname'],
+ data.COMPONENTS['manager']['port'], 'policies',
+ policy_id, 'rules'),
+ json={'rules': data.rules_mock}
+ )
\ No newline at end of file
--- /dev/null
+import pytest
+import data_mock as data
+
+
+def test_cache_manager():
+ from moon_utilities import cache
+ cache_obj = cache.Cache()
+ assert cache_obj.pdp is not None
+ assert cache_obj.meta_rules is not None
+ assert len(cache_obj.meta_rules) == 2
+ assert cache_obj.policies is not None
+ assert len(cache_obj.policies) == 2
+ assert cache_obj.models is not None
+
+
+def test_get_subject_success():
+ from moon_utilities import cache
+ cache_obj = cache.Cache()
+ policy_id = 'policy_id_1'
+ name = 'subject_name'
+ subject_id = cache_obj.get_subject(policy_id, name)
+ assert subject_id is not None
+
+
+def test_get_subject_failure():
+ from moon_utilities import cache
+ cache_obj = cache.Cache()
+ policy_id = 'policy_id_1'
+ name = 'invalid name'
+ with pytest.raises(Exception) as exception_info:
+ cache_obj.get_subject(policy_id, name)
+ assert str(exception_info.value) == '400: Subject Unknown'
+
+
+def test_get_object_success():
+ from moon_utilities import cache
+ cache_obj = cache.Cache()
+ policy_id = 'policy_id_1'
+ name = 'object_name'
+ object_id = cache_obj.get_object(policy_id, name)
+ assert object_id is not None
+
+
+def test_get_object_failure():
+ from moon_utilities import cache
+ cache_obj = cache.Cache()
+ policy_id = 'policy_id_1'
+ name = 'invalid name'
+ with pytest.raises(Exception) as exception_info:
+ cache_obj.get_object(policy_id, name)
+ assert str(exception_info.value) == '400: Subject Unknown'
+
+
+def test_get_action_success():
+ from moon_utilities import cache
+ cache_obj = cache.Cache()
+ policy_id = 'policy_id_1'
+ name = 'action_name'
+ action_id = cache_obj.get_action(policy_id, name)
+ assert action_id is not None
+
+
+def test_get_action_failure():
+ from moon_utilities import cache
+ cache_obj = cache.Cache()
+ policy_id = 'policy_id_1'
+ name = 'invalid name'
+ with pytest.raises(Exception) as exception_info:
+ cache_obj.get_action(policy_id, name)
+ assert str(exception_info.value) == '400: Subject Unknown'