diff options
Diffstat (limited to 'tests/test_lock_location.py')
-rw-r--r-- | tests/test_lock_location.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/test_lock_location.py b/tests/test_lock_location.py new file mode 100644 index 0000000..7f11b8a --- /dev/null +++ b/tests/test_lock_location.py @@ -0,0 +1,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 |