]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/cephadm/tests/test_template.py
import 15.2.4
[ceph.git] / ceph / src / pybind / mgr / cephadm / tests / test_template.py
1 import pathlib
2
3 import pytest
4
5 from cephadm.template import TemplateMgr, UndefinedError, TemplateNotFoundError
6
7
8 def test_render(fs):
9 template_base = (pathlib.Path(__file__).parent / '../templates').resolve()
10 fake_template = template_base / 'foo/bar'
11 fs.create_file(fake_template, contents='{{ cephadm_managed }}{{ var }}')
12
13 template_mgr = TemplateMgr()
14 value = 'test'
15
16 # with base context
17 expected_text = '{}{}'.format(template_mgr.base_context['cephadm_managed'], value)
18 assert template_mgr.render('foo/bar', {'var': value}) == expected_text
19
20 # without base context
21 with pytest.raises(UndefinedError):
22 template_mgr.render('foo/bar', {'var': value}, managed_context=False)
23
24 # override the base context
25 context = {
26 'cephadm_managed': 'abc',
27 'var': value
28 }
29 assert template_mgr.render('foo/bar', context) == 'abc{}'.format(value)
30
31 # template not found
32 with pytest.raises(TemplateNotFoundError):
33 template_mgr.render('foo/bar/2', {})