# HG changeset patch # User Franz Glasner # Date 1686494849 -7200 # Node ID db764da37cd2edb1754838a4b3f389ae0715df2b # Parent 4643f801379e8a64a29d51d2001a8e6a096f3197 Add a test with a "real-world" config structure with regard to references and jails diff -r 4643f801379e -r db764da37cd2 tests/data/jail-root-ref.yml --- a/tests/data/jail-root-ref.yml Sat Jun 10 22:33:11 2023 +0200 +++ b/tests/data/jail-root-ref.yml Sun Jun 11 16:47:29 2023 +0200 @@ -22,4 +22,27 @@ the-root: ref1: '{{ref:#target1.tree1}}' - ref2: '{{ref:#target2.tree2}}' + ref2: '{{ref:#target2.tree2}}' + + +realworld: + keysets: + access-sign: + - name: key-1 + type: something1 + data: !!null + - name: key-2 + type: something2 + data: + + job-sign: '{{ref:#realworld.keysets.access-sign}}' + + token: + access: + nbf: -2 + exp: 7200 + sign: '{{ref:#realworld.keysets.access-sign}}' + job: + nbf: -2 + exp: 600 + sign: '{{ref:#realworld.keysets.job-sign}}' diff -r 4643f801379e -r db764da37cd2 tests/test.py --- a/tests/test.py Sat Jun 10 22:33:11 2023 +0200 +++ b/tests/test.py Sun Jun 11 16:47:29 2023 +0200 @@ -2022,6 +2022,20 @@ self.assertEqual("v6", jcfg2.getvarl_s("k6")) self.assertEqual("v3", jcfg2.getvarl_s("ks")) + def test_jails_and_refs_tree(self): + cfg = configmix.load(os.path.join( + TESTDATADIR, "jail-root-ref.yml")) + for flavour in ("access", "job"): + tokcfg = cfg.jailed(rootpath=("realworld", "token", flavour)) + self.assertEqual(-2, tokcfg.getintvar_s("nbf")) + for idx, keysetcfg in enumerate( + tokcfg.jailed(rootpath=("sign",)).iter_jailed()): + self.assertEqual("key-%d" % (idx+1,), + keysetcfg.getvarl_s("name")) + self.assertEqual("something%d" % (idx+1,), + keysetcfg.getvarl_s("type")) + self.assertIsNone(keysetcfg.getvarl_s("data")) + class _TParserMixin: def test_quote_and_unquote_empty(self):