Mercurial > hgrepos > Python > libs > ConfigMix
changeset 680:e71f8bd50342
Tests for the new feature that resolves references at jail roots
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 09 Jun 2023 22:28:18 +0200 |
| parents | aa39c1856de4 |
| children | 6a55cbc836f1 |
| files | tests/data/jail-root-ref.yml tests/test.py |
| diffstat | 2 files changed, 49 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/data/jail-root-ref.yml Fri Jun 09 22:28:18 2023 +0200 @@ -0,0 +1,25 @@ +# -*- coding: utf-8; mode: yaml; indent-tabs-mode: nil; -*- + +# Testing jail roots with references ("symlinks") + +%YAML 1.1 +--- + +target1: + tree1: + k1: v1 + k2: v2 + k3: v3 + ks: '{{target1.tree1.k3}}' + sub-tree1: + k4: v4 + k5: v5 + k6: v6 + ks: '{{target1.tree1.k3}}' + +target2: + tree2: '{{ref:#target1.tree1}}' + +the-root: + ref1: '{{ref:#target1.tree1}}' + ref2: '{{ref:#target2.tree2}}'
--- a/tests/test.py Fri Jun 09 09:24:41 2023 +0200 +++ b/tests/test.py Fri Jun 09 22:28:18 2023 +0200 @@ -1998,6 +1998,30 @@ self.assertEqual((u"the-list", idx), jcfg2._path) self.assertEqual(u"the-list.~%d~." % (idx, ), jcfg2._pathstr) + def test_referenced_root(self): + cfg = configmix.load(os.path.join( + TESTDATADIR, "jail-root-ref.yml")) + jcfg = cfg.jailed(rootpath=("the-root", "ref1")) + print(repr(jcfg.getvarl_s())) + self.assertEqual("v3", jcfg.getvarl_s("ks")) + + + def test_referenced_root(self): + cfg = configmix.load(os.path.join( + TESTDATADIR, "jail-root-ref.yml")) + jcfg = cfg.jailed(rootpath=("the-root", "ref1")) + print(repr(jcfg.getvarl_s())) + self.assertEqual("v3", jcfg.getvarl_s("ks")) + self.assertEqual("v1", jcfg.getvarl_s("k1")) + + def test_referenced_root_in_subjail(self): + cfg = configmix.load(os.path.join( + TESTDATADIR, "jail-root-ref.yml")) + jcfg = cfg.jailed(rootpath=("the-root", "ref2")) + jcfg2 = jcfg.jailed(rootpath=("sub-tree1",)) + self.assertEqual("v6", jcfg2.getvarl_s("k6")) + self.assertEqual("v3", jcfg2.getvarl_s("ks")) + class _TParserMixin: def test_quote_and_unquote_empty(self):
