| #!/usr/bin/python |
| |
| import unittest |
| import common |
| from autotest_lib.client.virt import installer |
| from autotest_lib.client.common_lib import cartesian_config |
| |
| class installer_test(unittest.TestCase): |
| |
| def setUp(self): |
| self.registry = installer.InstallerRegistry() |
| |
| |
| def test_register_get_installer(self): |
| install_mode = 'custom_install_mode' |
| virt_type = 'custom_virt_type' |
| |
| class CustomVirtInstaller: |
| pass |
| |
| self.registry.register(install_mode, CustomVirtInstaller, virt_type) |
| klass = self.registry.get_installer(install_mode, virt_type) |
| self.assertIs(klass, CustomVirtInstaller) |
| |
| |
| def test_register_get_installer_default(self): |
| install_mode = 'base_install_mode' |
| |
| class BaseVirtInstaller: |
| pass |
| |
| self.registry.register(install_mode, BaseVirtInstaller) |
| klass = self.registry.get_installer(install_mode, |
| get_default_virt=True) |
| self.assertIs(klass, BaseVirtInstaller) |
| |
| klass = self.registry.get_installer(install_mode, |
| virt=None, |
| get_default_virt=True) |
| self.assertIs(klass, BaseVirtInstaller) |
| |
| |
| def test_make_installer(self): |
| config = """install_mode = test_install_mode |
| vm_type = test""" |
| |
| class Installer: |
| def __init__(self, mode, name, test, params): |
| pass |
| |
| installer.INSTALLER_REGISTRY.register('test_install_mode', |
| Installer, |
| 'test') |
| |
| config_parser = cartesian_config.Parser() |
| config_parser.parse_string(config) |
| params = config_parser.get_dicts().next() |
| |
| instance = installer.make_installer("test_install_mode_test", params) |
| self.assertIsInstance(instance, Installer) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |