Deprecate tests used as filters (#32361)

* Warn on tests used as filters

* Update docs, add aliases for tests that fit more gramatically with test syntax

* Fix rst formatting

* Add successful filter, alias of success

* Remove renamed_deprecation, it was overkill

* Make directory alias for is_dir

* Update tests to use proper jinja test syntax

* Update additional documentation, living outside of YAML files, to reflect proper jinja test syntax

* Add conversion script, porting guide updates, and changelog updates

* Update newly added uses of tests as filters

* No underscore variable

* Convert recent tests as filter changes to win_stat

* Fix some changes related to rebasing a few integration tests

* Make tests_as_filters_warning explicitly accept the name of the test, instead of inferring the name

* Add test for tests_as_filters_warning

* Update tests as filters in newly added/modified tests

* Address recent changes to several integration tests

* Address recent changes in cs_vpc
This commit is contained in:
Matt Martz 2017-11-27 16:58:08 -06:00 committed by ansibot
parent fd4a6cf7ad
commit 4fe08441be
349 changed files with 4086 additions and 3844 deletions

View file

@ -0,0 +1,30 @@
from ansible.template import Templar, display
from units.mock.loader import DictDataLoader
def test_tests_as_filters_warning(mocker):
fake_loader = DictDataLoader({
"/path/to/my_file.txt": "foo\n",
})
templar = Templar(loader=fake_loader, variables={})
filters = templar._get_filters()
mocker.patch.object(display, 'deprecated')
# Call successful test, ensure the message is correct
filters['successful']({})
display.deprecated.assert_called_once_with(
'Using tests as filters is deprecated. Instead of using `result|successful` instead use `result is successful`', version='2.9'
)
# Call success test, ensure the message is correct
display.deprecated.reset_mock()
filters['success']({})
display.deprecated.assert_called_once_with(
'Using tests as filters is deprecated. Instead of using `result|success` instead use `result is success`', version='2.9'
)
# Call bool filter, ensure no deprecation message was displayed
display.deprecated.reset_mock()
filters['bool'](True)
assert display.deprecated.call_count == 0