view tests/valgrind-checks.py @ 654:0d6673d06c2c

Add support for using "tomllib" (in Python's stdlib since 3.11) and "tomli" TOML packages. They are preferred if they are found to be installed. But note that the declared dependency for the "toml" extra nevertheless is the "toml" package. Because it is available for all supported Python versions. So use Python 3.11+ or install "tomli" manually if you want to use the alternate packages.
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 19 May 2022 22:10:59 +0200
parents 429a7d5002b8
children
line wrap: on
line source

# -*- coding: utf-8 -*-
r"""Checks to be run within Valgrind

"""

from __future__ import print_function

import os

from _test_context import TESTDATADIR

import configmix


NUM = 10000
WITH_JAIL = True

DOTS = 1000


cfg = configmix.load(os.path.join(TESTDATADIR, "conf_perf.py"))

DEFAULT_DICT = {u"the": u"default"}


i = 1
while i <= NUM:

    tmp1 = cfg.getvarl(u"tree1", u"tree2", u"key8")
    tmp2 = cfg.getvarl_s(u"tree1", u"tree2", u"key8")
    tmp3 = cfg.getvar(u"tree1.tree2.key8")
    tmp4 = cfg.getvar_s(u"tree1.tree2.key8")

    try:
        tmp1 = cfg.getvarl(u"tree1", u"tree2", u"keyX")
    except KeyError:
        pass
    else:
        assert False
    try:
        tmp2 = cfg.getvarl_s(u"tree1", u"tree2", u"keyXX")
    except KeyError:
        pass
    else:
        assert False
    try:
        tmp3 = cfg.getvar(u"tree1.tree2.keyXXX")
    except KeyError:
        pass
    else:
        assert False
    try:
        tmp4 = cfg.getvar_s(u"tree1.tree2.keyXXXX")
    except KeyError:
        pass
    else:
        assert False

    tmp1 = cfg.getvarl_s(u"tree1", u"tree2", u"key10")
    # non-cacheable interpolation
    tmp2 = cfg.getvarl_s(u"tree1", u"tree2", u"key12")
    tmp3 = cfg.getvarl_s(u"tree1", u"tree2", u"key13")

    tmp1 = cfg.getvar_s(u"tree1.tree2.key10")
    # non-cacheable interpolation
    tmp2 = cfg.getvar_s(u"tree1.tree2.key12")
    tmp3 = cfg.getvar_s(u"tree1.tree2.key13")

    assert("key2" in cfg)
    assert((u"tree1", u"tree2", u"keyX") not in cfg)
    assert((u"tree1", u"tree2", u"key8") in cfg)

    tmp1 = cfg.getvarl(u"tree1", u"treeXXXX", default=DEFAULT_DICT)
    assert(tmp1 is DEFAULT_DICT)
    tmp2 = cfg.getvarl_s(u"tree1", u"treeXXXXXXX", default=DEFAULT_DICT)
    assert(tmp2 is DEFAULT_DICT)    
    tmp3 = cfg.getvar(u"treeXXXXXXXXXXX", default=DEFAULT_DICT)
    assert(tmp3 is DEFAULT_DICT)
    tmp4 = cfg.getvar_s(u"treeXXXXXXXXXXXXXXXXXXX", default=DEFAULT_DICT)
    assert(tmp4 is DEFAULT_DICT)

    if WITH_JAIL:
        jail = cfg.jailed(root=u"tree1.tree2")
        assert(u"key5" in jail)
        tmp1 = jail[u"key6"]
        tmp2 = jail[(u"key8",)]

        jail2 = cfg.jailed(rootpath=(u"tree1",))
        assert((u"tree2", u"key9") in jail2)
        tmp1 = jail2.getvarl_s(u"tree2")

        tmp1 = jail2.getvar(u"tree3")
        try:
            tmp2 = jail2.getvar_s(u"tree3")
        except KeyError:
            pass
        else:
            assert False

        try:
            tmp1 = jail2.getvar(u"treeXXXX")
        except KeyError:
            pass
        else:
            assert False

    if i % DOTS == 0:
        print(".", end='', flush=True)

    i += 1

jail = jail2 = None
tmp1 = tmp2 = tmp3 = tmp4 = None

print()
print("Done (loops: %d)." % (NUM,))