1"""
2Test config file
3"""
4
5import os
6import re
7import inspect
8from lib import BaseTest
9
10
11class CreateConfigTest(BaseTest):
12    """
13    new file is generated if missing
14    """
15    runCmd = "aptly mirror list"
16    checkedFile = os.path.join(os.environ["HOME"], ".aptly.conf")
17
18    check = BaseTest.check_file
19    gold_processor = BaseTest.expand_environ
20    prepare = BaseTest.prepare_remove_all
21
22
23class BadConfigTest(BaseTest):
24    """
25    broken config file
26    """
27    runCmd = "aptly mirror list"
28    expectedCode = 1
29
30    gold_processor = BaseTest.expand_environ
31
32    def prepare(self):
33        self.prepare_remove_all()
34
35        f = open(os.path.join(os.environ["HOME"], ".aptly.conf"), "w")
36        f.write("{some crap")
37        f.close()
38
39
40class ConfigInFileTest(BaseTest):
41    """
42    config in other file test
43    """
44    runCmd = ["aptly", "mirror", "list",
45              "-config=%s" % (os.path.join(os.path.dirname(inspect.getsourcefile(BadConfigTest)), "aptly.conf"), )]
46    prepare = BaseTest.prepare_remove_all
47
48    def outputMatchPrepare(_, s):
49        return re.sub(r'  -(cpuprofile|memprofile|memstats|meminterval)=.*\n', '', s, flags=re.MULTILINE)
50
51
52class ConfigInMissingFileTest(BaseTest):
53    """
54    config in other file test
55    """
56    runCmd = ["aptly", "mirror", "list", "-config=nosuchfile.conf"]
57    expectedCode = 1
58    prepare = BaseTest.prepare_remove_all
59
60
61class ConfigShowTest(BaseTest):
62    """
63    config showing
64    """
65    runCmd = ["aptly", "config", "show"]
66    gold_processor = BaseTest.expand_environ
67