CORD-1568: Support sharing policies by letting one policy invoke another
Change-Id: I87fdb80a65d86b61364abd3ec35961668924c8f5
diff --git a/lib/xos-genx/tests/policy_test.py b/lib/xos-genx/tests/policy_test.py
index 25c307e..5bc3511 100644
--- a/lib/xos-genx/tests/policy_test.py
+++ b/lib/xos-genx/tests/policy_test.py
@@ -215,6 +215,41 @@
self.assertTrue(eval(expr))
+ def test_policy_function(self):
+ xproto = \
+"""
+ policy slice_policy < exists Privilege: Privilege.object_id = obj.id >
+ policy network_slice_policy < *slice_policy(slice) >
+"""
+
+ target = XProtoTestHelpers.write_tmp_target("{{ proto.policies.network_slice_policy }} ")
+ args = FakeArgs()
+ args.inputs = xproto
+ args.target = target
+
+ output = XOSGenerator.generate(args)
+
+ (op, operands), = eval(output).items()
+
+ self.assertIn('slice_policy', operands)
+ self.assertIn('slice', operands)
+
+ def test_policy_missing_function(self):
+ xproto = \
+"""
+ policy slice_policy < exists Privilege: Privilege.object_id = obj.id >
+ policy network_slice_policy < *slice_policyX(slice) >
+"""
+
+ target = XProtoTestHelpers.write_tmp_target("{{ proto.policies.network_slice_policy }} ")
+ args = FakeArgs()
+ args.inputs = xproto
+ args.target = target
+
+ with self.assertRaises(Exception):
+ output = XOSGenerator.generate(args)
+
+
def test_forall(self):
# This one we only parse
xproto = \