File: test_env.py

package info (click to toggle)
simple-cdd 0.6.9
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 344 kB
  • sloc: python: 1,904; sh: 111; makefile: 13
file content (84 lines) | stat: -rw-r--r-- 2,957 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import unittest
from simple_cdd import env
import tempfile
import os

class TestEnv(unittest.TestCase):
    def setUp(self):
        # Save and clear the environment before the tests
        self.saved_env = dict(os.environ)
        os.environ.clear()

    def tearDown(self):
        # Restore the environment after the tests
        os.environ.clear()
        for k, v in self.saved_env.items():
            os.environ[k] = v

    def test_knownvar_text(self):
        VARIABLES = [
            env.TextVar("test", "default")
        ]

        # If the variable does not exist in the environment, it gets the
        # default value
        e = env.Environment(VARIABLES)
        self.assertEqual(e.test, "default")

        # If the variable does exists in the environment, the environment value
        # is used
        os.environ["test"] = "somevalue"
        e = env.Environment(VARIABLES)
        self.assertEqual(e.test, "somevalue")

    def test_unknownvar(self):
        # Unknown values raise AttributeError via the getattr interface, even
        # if set in the environment, but are still accessible via get()
        e = env.Environment([])
        with self.assertRaises(AttributeError):
            e.test
        self.assertEqual(e.get("test"), "")

        os.environ["test"] = "somevalue"
        e = env.Environment([])
        with self.assertRaises(AttributeError):
            e.test
        self.assertEqual(e.get("test"), "somevalue")

    def test_expansion(self):
        # Case of expansion that broke in the past
        VARIABLES = [
            env.PathVar("simple_cdd_dir", "test",
                    help="simple-cdd working directory"),
            env.PathVar("simple_cdd_temp", ["{simple_cdd_dir}", "tmp"],
                    help="directory where intermediate build data are stored"),
            env.PathVar("simple_cdd_mirror", ["{simple_cdd_temp}", "mirror"],
                    help="directory where the local mirror is stored"),
            env.PathVar("MIRROR", "{simple_cdd_mirror}",
                    help="directory where the local mirror is stored"),
        ]
        e = env.Environment(VARIABLES)
        self.assertEqual(e.MIRROR, "test/tmp/mirror")

        VARIABLES = [
            env.BoolVar("a", True),
            env.BoolVar("b", "{a}"),
        ]
        e = env.Environment(VARIABLES)
        self.assertEqual(e.a, True)

    def test_configfile(self):
        VARIABLES = [
            env.BoolVar("use_security_mirror", help="merge Debian security updates into mirror"),
        ]
        e = env.Environment(VARIABLES)
        self.assertFalse(e.use_security_mirror)
        e.set("use_security_mirror", True)
        self.assertTrue(e.use_security_mirror)

        with tempfile.NamedTemporaryFile(mode="wt") as fd:
            print("use_security_mirror=false", file=fd)
            fd.flush()
            e.read_config_file(fd.name)
        self.assertFalse(e.use_security_mirror)