mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.4 KiB
Python
82 lines
1.4 KiB
Python
12 years ago
|
'''
|
||
|
Test bundled filters
|
||
|
'''
|
||
|
|
||
|
import unittest, tempfile, shutil
|
||
|
from ansible import playbook, inventory, callbacks
|
||
|
|
||
|
INVENTORY = inventory.Inventory(['localhost'])
|
||
|
|
||
|
BOOK = '''
|
||
|
- hosts: localhost
|
||
|
vars:
|
||
|
var: { a: [1,2,3] }
|
||
|
tasks:
|
||
|
- template: src=%s dest=%s
|
||
|
'''
|
||
|
|
||
|
SRC = '''
|
||
|
-
|
||
|
{{ var|to_json }}
|
||
|
-
|
||
|
{{ var|to_nice_json }}
|
||
|
-
|
||
|
{{ var|to_yaml }}
|
||
|
-
|
||
|
{{ var|to_nice_yaml }}
|
||
|
'''
|
||
|
|
||
|
DEST = '''
|
||
|
-
|
||
|
{"a": [1, 2, 3]}
|
||
|
-
|
||
|
{
|
||
|
"a": [
|
||
|
1,
|
||
|
2,
|
||
|
3
|
||
|
]
|
||
|
}
|
||
|
-
|
||
|
a: [1, 2, 3]
|
||
|
|
||
|
-
|
||
|
a:
|
||
|
- 1
|
||
|
- 2
|
||
|
- 3
|
||
|
'''
|
||
|
|
||
|
class TestFilters(unittest.TestCase):
|
||
|
|
||
|
def setUp(self):
|
||
|
self.tmpdir = tempfile.mkdtemp(dir='/tmp')
|
||
|
|
||
|
def tearDown(self):
|
||
|
shutil.rmtree(self.tmpdir)
|
||
|
|
||
|
def temp(self, name, data=''):
|
||
|
'''write a temporary file and return the name'''
|
||
|
name = self.tmpdir + '/' + name
|
||
|
with open(name, 'w') as f:
|
||
|
f.write(data)
|
||
|
return name
|
||
|
|
||
|
def test_filters(self):
|
||
|
src = self.temp('src.j2', SRC)
|
||
|
dest = self.temp('dest.txt')
|
||
|
book = self.temp('book', BOOK % (src, dest))
|
||
|
|
||
|
playbook.PlayBook(
|
||
|
playbook = book,
|
||
|
inventory = INVENTORY,
|
||
|
transport = 'local',
|
||
|
callbacks = callbacks.PlaybookCallbacks(),
|
||
|
runner_callbacks = callbacks.DefaultRunnerCallbacks(),
|
||
|
stats = callbacks.AggregateStats(),
|
||
|
).run()
|
||
|
|
||
|
out = open(dest).read()
|
||
|
self.assertEqual(DEST, out)
|
||
|
|