diff options
author | Zuul <zuul@review.openstack.org> | 2018-06-04 07:19:23 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2018-06-04 07:19:23 +0000 |
commit | 7a50c85a384a3fa4711c25153f7ce55982f35e22 (patch) | |
tree | cfcc3de055a0fdadb19460b2daf2458b9400a894 | |
parent | eb1546fdfc157ebce0d52cbee54e2898d13de245 (diff) | |
parent | 0f31938dd720015444e03f0056c0cfc0e4b8e932 (diff) | |
download | oslo-policy-1.37.0.tar.gz |
Merge "Remove erroneous newline in sample generation"1.37.0
-rw-r--r-- | oslo_policy/generator.py | 3 | ||||
-rw-r--r-- | oslo_policy/tests/test_generator.py | 39 | ||||
-rw-r--r-- | releasenotes/notes/fix-rendering-for-deprecated-rules-d465292e4155f483.yaml | 6 |
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. |