summaryrefslogtreecommitdiff
path: root/oslo_policy/tests
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2019-09-10 10:45:20 +0000
committerGerrit Code Review <review@openstack.org>2019-09-10 10:45:20 +0000
commite433a3cbec5da0241bb1716b8bfda9fa927069ce (patch)
treec6fce63696a3022b579af7af7c4c5fc0d12e69ee /oslo_policy/tests
parent65ca33adb99622e48604e01edc3f1925443681ef (diff)
parent9641e5ca0d758376fb7f7f5156056d5206d71046 (diff)
downloadoslo-policy-e433a3cbec5da0241bb1716b8bfda9fa927069ce.tar.gz
Merge "Only alias when policy names change"2.3.2
Diffstat (limited to 'oslo_policy/tests')
-rw-r--r--oslo_policy/tests/test_generator.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/oslo_policy/tests/test_generator.py b/oslo_policy/tests/test_generator.py
index ab0940a..18c5406 100644
--- a/oslo_policy/tests/test_generator.py
+++ b/oslo_policy/tests/test_generator.py
@@ -239,6 +239,49 @@ class GenerateSampleYAMLTestCase(base.PolicyBaseTestCase):
)
self.assertEqual(expected, stdout.getvalue())
+ def test_deprecated_policies_with_same_name(self):
+ deprecated_rule = policy.DeprecatedRule(
+ name='foo:create_bar',
+ check_str='role:old'
+ )
+ new_rule = policy.RuleDefault(
+ name='foo:create_bar',
+ check_str='role:fizz',
+ description='Create a bar.',
+ deprecated_rule=deprecated_rule,
+ deprecated_reason=(
+ 'role:fizz is a more sane default for foo:create_bar'
+ ),
+ deprecated_since='N'
+ )
+ opts = {'rules': [new_rule]}
+
+ extensions = []
+ for name, opts in opts.items():
+ ext = stevedore.extension.Extension(name=name, entry_point=None,
+ plugin=None, obj=opts)
+ extensions.append(ext)
+ test_mgr = stevedore.named.NamedExtensionManager.make_test_instance(
+ extensions=extensions, namespace=['rules'])
+
+ expected = '''# Create a bar.
+#"foo:create_bar": "role:fizz"
+
+# DEPRECATED "foo:create_bar":"role:old" has been deprecated since N
+# in favor of "foo:create_bar":"role:fizz". role:fizz is a more sane
+# default for foo:create_bar
+'''
+ stdout = self._capture_stdout()
+ with mock.patch('stevedore.named.NamedExtensionManager',
+ return_value=test_mgr) as mock_ext_mgr:
+ generator._generate_sample(['rules'], output_file=None)
+ mock_ext_mgr.assert_called_once_with(
+ 'oslo.policy.policies', names=['rules'],
+ on_load_failure_callback=generator.on_load_failure_callback,
+ invoke_on_load=True
+ )
+ self.assertEqual(expected, stdout.getvalue())
+
def _test_formatting(self, description, expected):
rule = [policy.RuleDefault('admin', 'is_admin:True',
description=description)]