oggit/packages/pyblkid/opengnsys-pyblkid-0.3/tests/test_cache.py

69 lines
2.0 KiB
Python

import os
import unittest
import tempfile
from . import utils
import blkid
@unittest.skipUnless(os.geteuid() == 0, "requires root access")
class CacheTestCase(unittest.TestCase):
test_image = "test.img.xz"
loop_dev = None
cache_file = None
@classmethod
def setUpClass(cls):
test_dir = os.path.abspath(os.path.dirname(__file__))
cls.loop_dev = utils.loop_setup(os.path.join(test_dir, cls.test_image))
_, cls.cache_file = tempfile.mkstemp()
@classmethod
def tearDownClass(cls):
if cls.loop_dev:
utils.loop_teardown(cls.loop_dev)
if cls.cache_file:
os.remove(cls.cache_file)
def test_cache(self):
cache = blkid.Cache(filename=self.cache_file)
cache.probe_all()
cache.probe_all(removable=True)
cache.gc()
device = cache.get_device(self.loop_dev)
self.assertIsNotNone(device)
self.assertEqual(device.devname, self.loop_dev)
device = cache.find_device("LABEL", "not-in-cache")
self.assertIsNone(device)
device = cache.find_device("LABEL", "test-ext3")
self.assertIsNotNone(device)
self.assertEqual(device.devname, self.loop_dev)
self.assertIsNotNone(device.tags)
self.assertIn("UUID", device.tags.keys())
self.assertEqual(device.tags["UUID"], "35f66dab-477e-4090-a872-95ee0e493ad6")
self.assertIn("LABEL", device.tags.keys())
self.assertEqual(device.tags["LABEL"], "test-ext3")
self.assertIn("TYPE", device.tags.keys())
self.assertEqual(device.tags["TYPE"], "ext3")
self.assertTrue(cache.devices)
self.assertIn(self.loop_dev, [d.devname for d in cache.devices])
device.verify()
self.assertIsNotNone(device)
self.assertEqual(device.devname, self.loop_dev)
# we don't have new devices, so just a sanity check
cache.probe_all(new_only=True)
if __name__ == "__main__":
unittest.main()