diff options
author | Martin Gracik <mgracik@redhat.com> | 2009-03-24 11:05:40 +0100 |
---|---|---|
committer | Martin Gracik <mgracik@redhat.com> | 2009-03-24 14:41:55 +0100 |
commit | ac83df7815ff3db042875db51a43c107e982ee70 (patch) | |
tree | a8b67d04cf0b00ea92b6fa1d4c162123dc9fa0e3 /tests | |
download | anate-ac83df7815ff3db042875db51a43c107e982ee70.tar.gz anate-ac83df7815ff3db042875db51a43c107e982ee70.tar.xz anate-ac83df7815ff3db042875db51a43c107e982ee70.zip |
Diffstat (limited to 'tests')
-rw-r--r-- | tests/__init__.py | 20 | ||||
-rw-r--r-- | tests/devices.py | 96 | ||||
-rw-r--r-- | tests/vm.py | 55 |
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() |