summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMartin Gracik <mgracik@redhat.com>2009-03-24 11:05:40 +0100
committerMartin Gracik <mgracik@redhat.com>2009-03-24 14:41:55 +0100
commitac83df7815ff3db042875db51a43c107e982ee70 (patch)
treea8b67d04cf0b00ea92b6fa1d4c162123dc9fa0e3 /tests
downloadanate-ac83df7815ff3db042875db51a43c107e982ee70.tar.gz
anate-ac83df7815ff3db042875db51a43c107e982ee70.tar.xz
anate-ac83df7815ff3db042875db51a43c107e982ee70.zip
Initial commitHEADmaster
Diffstat (limited to 'tests')
-rw-r--r--tests/__init__.py20
-rw-r--r--tests/devices.py96
-rw-r--r--tests/vm.py55
3 files changed, 171 insertions, 0 deletions
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 0000000..99ee679
--- /dev/null
+++ b/tests/__init__.py
@@ -0,0 +1,20 @@
+import os
+
+def getAvailableSuites():
+ root, tests_dir = os.path.split(os.path.dirname(__file__))
+ modules = []
+
+ for root, dirs, files in os.walk(tests_dir):
+ for filename in files:
+ if filename.endswith('.py') and filename != '__init__.py':
+ basename, extension = os.path.splitext(filename)
+ modules.append(os.path.join(root, basename).replace('/', '.'))
+
+ available_suites = {}
+ for module in modules:
+ imported = __import__(module, globals(), locals(), [module], -1)
+ suite = getattr(imported, 'suite', None)
+ if callable(suite):
+ available_suites[module] = suite()
+
+ return available_suites
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()
diff --git a/tests/vm.py b/tests/vm.py
new file mode 100644
index 0000000..62fc3c3
--- /dev/null
+++ b/tests/vm.py
@@ -0,0 +1,55 @@
+import unittest
+import anate.vm as vm
+
+
+class VMTestCase(unittest.TestCase):
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testVirtualDisk(self):
+ disk = vm.VirtualDisk('mydisk1', 10000, 100)
+ self.assertEqual(disk.name, 'mydisk1')
+ self.assertEqual(disk.path, '/dev/mapper/mydisk1')
+ self.assertEqual(disk.size, 10000)
+ self.assertEqual(disk.usable_size, 100)
+ self.assertFalse(disk.active)
+
+ disk.create()
+ self.assertTrue(disk.active)
+ self.assertEqual(disk._loop_dev.major, 7)
+ self.assertEqual(disk._loop_dev.minor, 0)
+
+ disk.remove()
+ self.assertFalse(disk.active)
+
+ def testVM(self):
+ machine = vm.VM()
+
+ machine.addDisk('mydisk1', 10000, 100)
+ machine.addDisk('mydisk2', 10000, 100)
+ self.assertEqual(len(machine.disks), 2)
+
+ for name in ('mydisk1', 'mydisk2'):
+ disk = machine.getDisk(name)
+ self.assertEqual(disk.name, name)
+ self.assertEqual(disk.path, '/dev/mapper/' + name)
+ self.assertEqual(disk.size, 10000)
+ self.assertEqual(disk.usable_size, 100)
+ self.assertTrue(disk.active)
+
+ machine.removeDisk('mydisk2')
+ machine.removeDisk('mydisk1')
+ self.assertEqual(machine.disks, {})
+
+ machine.halt()
+
+
+def suite():
+ return unittest.TestLoader().loadTestsFromTestCase(VMTestCase)
+
+
+if __name__ == '__main__':
+ unittest.main()