summaryrefslogtreecommitdiffstats
path: root/tests/devices.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/devices.py')
-rw-r--r--tests/devices.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/tests/devices.py b/tests/devices.py
new file mode 100644
index 0000000..5805035
--- /dev/null
+++ b/tests/devices.py
@@ -0,0 +1,96 @@
+import unittest
+import anate.devices as devices
+
+
+class DevicesTestCase(unittest.TestCase):
+ def setUp(self):
+ self._remove_node = False
+ self.device_node = devices.BlockDeviceNode('/dev/loop0', major=7, minor=0)
+ if not self.device_node.available:
+ self.device_node.create()
+ self._remove_node = True
+
+ def tearDown(self):
+ if self._remove_node:
+ self.device_node.unlink()
+
+ def testBlockDeviceClass(self):
+ device_object = devices.BlockDevice('device0', self.device_node)
+ self.assertEqual(device_object.name, 'device0')
+ self.assertEqual(device_object.path, '/dev/loop0')
+ self.assertEqual(device_object.active, False)
+ self.assertEqual(device_object.major, 7)
+ self.assertEqual(device_object.minor, 0)
+
+ device_object.initialize()
+ self.assertEqual(device_object.active, True)
+
+ device_object.destroy()
+ self.assertEqual(device_object.active, False)
+
+ def testStorageDeviceClass(self):
+ storage_object = devices.StorageDevice('storage0', self.device_node, size=20)
+ self.assertEqual(storage_object.name, 'storage0')
+ self.assertEqual(storage_object.path, '/dev/loop0')
+ self.assertEqual(storage_object.size, 20)
+ self.assertEqual(storage_object.active, False)
+ self.assertEqual(storage_object.major, 7)
+ self.assertEqual(storage_object.minor, 0)
+
+ storage_object.initialize()
+ self.assertEqual(storage_object.active, True)
+
+ storage_object.destroy()
+ self.assertEqual(storage_object.active, False)
+
+ def testLoopDeviceClass(self):
+ loop_object = devices.LoopDevice('loop0', self.device_node, '/tmp/file0', size=20)
+ self.assertEqual(loop_object.name, 'loop0')
+ self.assertEqual(loop_object.path, '/dev/loop0')
+ self.assertEqual(loop_object.active, False)
+ self.assertEqual(loop_object.major, 7)
+ self.assertEqual(loop_object.minor, 0)
+
+ loop_object.initialize()
+ self.assertEqual(loop_object.active, True)
+
+ loop_object.destroy()
+ self.assertEqual(loop_object.active, False)
+
+ def testDMDeviceClass(self):
+ loop_object = devices.LoopDevice('loop0', self.device_node, '/tmp/file0', size=20)
+ loop_object.initialize()
+
+ dm_object = devices.DMDevice('mydm0', loop_object)
+ self.assertEqual(dm_object.name, 'mydm0')
+ self.assertEqual(dm_object.path, '/dev/mapper/mydm0')
+ self.assertEqual(dm_object.size, loop_object.size)
+ self.assertEqual(dm_object.usable_size, loop_object.size)
+ self.assertEqual(dm_object.active, False)
+
+ dm_object.initialize()
+ self.assertEqual(dm_object.active, True)
+
+ major, minor = devices.getDeviceNumbers(dm_object.path)
+ self.assertEqual(dm_object.major, major)
+ self.assertEqual(dm_object.minor, minor)
+
+ dm_object.destroy()
+ self.assertEqual(dm_object.active, False)
+
+ dm_object = devices.DMDevice('mydm0', loop_object, size=40)
+ self.assertEqual(dm_object.size, 40)
+ self.assertEqual(dm_object.usable_size, loop_object.size)
+
+ dm_object.initialize()
+ dm_object.destroy()
+
+ loop_object.destroy()
+
+
+def suite():
+ return unittest.TestLoader().loadTestsFromTestCase(DevicesTestCase)
+
+
+if __name__ == '__main__':
+ unittest.main()