summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-06-04 07:19:23 +0000
committerGerrit Code Review <review@openstack.org>2018-06-04 07:19:23 +0000
commit7a50c85a384a3fa4711c25153f7ce55982f35e22 (patch)
treecfcc3de055a0fdadb19460b2daf2458b9400a894
parenteb1546fdfc157ebce0d52cbee54e2898d13de245 (diff)
parent0f31938dd720015444e03f0056c0cfc0e4b8e932 (diff)
downloadoslo-policy-1.37.0.tar.gz
Merge "Remove erroneous newline in sample generation"1.37.0
-rw-r--r--oslo_policy/generator.py3
-rw-r--r--oslo_policy/tests/test_generator.py39
-rw-r--r--releasenotes/notes/fix-rendering-for-deprecated-rules-d465292e4155f483.yaml6
3 files changed, 46 insertions, 2 deletions
diff --git a/oslo_policy/generator.py b/oslo_policy/generator.py
index 38c9b5b..6694559 100644
--- a/oslo_policy/generator.py
+++ b/oslo_policy/generator.py
@@ -136,8 +136,7 @@ def _format_rule_default_yaml(default, include_help=True):
if default.deprecated_for_removal:
text = (
'# DEPRECATED\n# "%(name)s" has been deprecated since '
- '%(since)s.\n%(reason)s\n%(text)s\n'
- '"%(name)s": "%(check_str)s"'
+ '%(since)s.\n%(reason)s\n%(text)s'
) % {'name': default.name,
'check_str': default.check_str,
'since': default.deprecated_since,
diff --git a/oslo_policy/tests/test_generator.py b/oslo_policy/tests/test_generator.py
index e0aac6d..2052572 100644
--- a/oslo_policy/tests/test_generator.py
+++ b/oslo_policy/tests/test_generator.py
@@ -160,6 +160,45 @@ class GenerateSampleYAMLTestCase(base.PolicyBaseTestCase):
self.assertEqual(expected, stdout.getvalue())
+ def test_policies_deprecated_for_removal(self):
+ rule = policy.RuleDefault(
+ name='foo:post_bar',
+ check_str='role:fizz',
+ description='Create a bar.',
+ deprecated_for_removal=True,
+ deprecated_reason='This policy is not used anymore',
+ deprecated_since='N'
+ )
+ opts = {'rules': [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 = '''# DEPRECATED
+# "foo:post_bar" has been deprecated since N.
+# This policy is not used anymore
+# Create a bar.
+#"foo:post_bar": "role:fizz"
+
+'''
+ 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_deprecated_policies_are_aliased_to_new_names(self):
deprecated_rule = policy.DeprecatedRule(
name='foo:post_bar',
diff --git a/releasenotes/notes/fix-rendering-for-deprecated-rules-d465292e4155f483.yaml b/releasenotes/notes/fix-rendering-for-deprecated-rules-d465292e4155f483.yaml
new file mode 100644
index 0000000..45b85b8
--- /dev/null
+++ b/releasenotes/notes/fix-rendering-for-deprecated-rules-d465292e4155f483.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ [`bug 1771442 <https://bugs.launchpad.net/oslo.policy/+bug/1771442>`_]
+ Policy rules that are deprecated for removal are now properly formatted
+ when rendering sample policy files for documentation.