File: test_config.py

package info (click to toggle)
lightyears 1.5.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 25,804 kB
  • sloc: python: 5,532; sh: 39; makefile: 6
file content (62 lines) | stat: -rw-r--r-- 1,853 bytes parent folder | download | duplicates (2)
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
#
# 20,000 Light Years Into Space
# This game is licensed under GPL v2, and copyright (C) Jack Whitham 2006-21.
#

import pickle
from lib20k import game_random, config
from lib20k.primitives import *
from lib20k.game_types import *
from . import unit_test


def test_Config() -> None:
    """Test for config.py.

    Read, write and recreate the configuration file.
    Correctness is checked with assertions.
    """
    # Initial configuration
    test_screen = unit_test.Setup_For_Unit_Test()
    config.Initialise(True)     # full reinit
    assert config.cfg.mute
    assert config.cfg.version == VERSION
    assert config.cfg.test == 0
    assert config.FILENAME is not None

    # Configuration test
    config.cfg.test = 1
    config.Save()
    assert config.cfg.test == 1
    config.cfg.test = 2

    # Reload (test number goes back)
    config.Initialise(False)    # reload
    assert config.cfg.test == 1
    config.cfg.test = 3

    # Make invalid version (in a valid file)
    my_cfg = pickle.load(open(config.FILENAME, "rb"))
    my_cfg.version = "INVALID"
    pickle.dump(my_cfg, open(config.FILENAME, "wb"))
    config.Initialise(False)        # attempt to reload
    assert config.cfg.test == 3     # nothing was loaded
    assert config.cfg.version == VERSION

    # Make non-loadable configuration
    open(config.FILENAME, "wb").write(b"INVALID")
    config.Initialise(False)        # reload
    assert config.cfg.mute          # mute setting not reloaded (not loadable)
    assert config.cfg.test == 3     # nothing was loaded
    assert config.cfg.version == VERSION

    # Make non-saveable configuration
    copy = config.FILENAME
    config.FILENAME = None
    config.Save()                   # get exception handler coverage
    config.FILENAME = copy

    # Back to normal
    config.cfg.test = 0
    config.Initialise(True)