aboutsummaryrefslogtreecommitdiff
path: root/tests/test_lock_location.py
blob: 7f11b8ad5d1eea7c1ab73ac898b3901e11e1a4f1 (plain) (blame)
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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Tests locking."""

import imp
import logging
import os
import subprocess
import sys
import unittest

DEBUG = False


class LockFileLocationTest(unittest.TestCase):

    def test_lock_file_location(self):
        """Make sure that the correct lock files are used."""
        # Make sure that the lock module is reloaded if called from
        # within a test suite (to ensure no stale apt_pkg.config values
        # hanging around)
        import aptdaemon.lock
        imp.reload(aptdaemon.lock)
        # the actual test
        self.assertEqual(aptdaemon.lock.status_lock.path,
                         os.path.join(os.path.dirname(self.STATUS_PATH),
                                      "lock"))
        self.assertEqual(aptdaemon.lock.lists_lock.path,
                         os.path.join(self.LISTS_PATH, "lock"))
        self.assertEqual(aptdaemon.lock.archive_lock.path,
                         os.path.join(self.ARCHIVES_PATH, "lock"))

    def setUp(self):
        """Extract the currently used pathes."""
        for var, lock in [("self.STATUS_PATH", "'dir::state::status'/f"),
                          ("self.LISTS_PATH", "'dir::state::lists'/d"),
                          ("self.ARCHIVES_PATH", "'dir::cache::archives'/d")]:
            cmd = subprocess.Popen("/usr/bin/apt-config shell %s %s" % (var,
                                                                        lock),
                                   shell=True, stdout=subprocess.PIPE)
            exec(cmd.communicate()[0])


@unittest.skipIf(sys.version_info.major < 3, "Only Python 3")
def setUp():
    pass

if __name__ == "__main__":
    if DEBUG:
        logging.basicConfig(level=logging.DEBUG)
    unittest.main()

# vim: ts=4 et sts=4