예제 #1
0
class HardDriveSourceTestCase(unittest.TestCase):
    def setUp(self):
        self.module = HardDriveSourceModule()

    def type_test(self):
        """Hard drive source module has a correct type."""
        self.assertEqual(SourceType.HDD, self.module.type)

    def network_required_test(self):
        """Test the property network_required."""
        self.assertEqual(self.module.network_required, False)

    def set_up_with_tasks_test(self):
        """Hard drive source set up task type and amount."""
        task_classes = [SetUpHardDriveSourceTask]

        # task will not be public so it won't be published
        tasks = self.module.set_up_with_tasks()

        # Check the number of the tasks
        task_number = len(task_classes)
        self.assertEqual(task_number, len(tasks))

        for i in range(task_number):
            self.assertIsInstance(tasks[i], task_classes[i])

    @patch("os.path.ismount")
    def ready_state_test(self, ismount):
        """Hard drive source ready state for set up."""
        ismount.return_value = False

        self.assertEqual(self.module.get_state(), SourceState.UNREADY)
        ismount.assert_called_once_with(self.module._device_mount)

        ismount.reset_mock()
        ismount.return_value = True

        task = self.module.set_up_with_tasks()[0]
        task.get_result = Mock(
            return_value=SetupHardDriveResult("/my/path", ""))
        task.succeeded_signal.emit()

        self.assertEqual(self.module.get_state(), SourceState.READY)
        ismount.assert_called_once_with(self.module._device_mount)

    def return_handler_test(self):
        """Hard drive source setup result propagates back."""
        task = self.module.set_up_with_tasks()[0]
        task.get_result = Mock(return_value=SetupHardDriveResult(
            iso_mount_location, "iso_name.iso"))
        task.succeeded_signal.emit()

        self.assertEqual(self.module.install_tree_path, iso_mount_location)
        self.assertEqual(self.module._iso_name, "iso_name.iso")

    def return_handler_without_iso_test(self):
        """Hard drive source setup result propagates back when no ISO is involved.

        This is happening when installation tree is used instead of ISO image.
        """
        task = self.module.set_up_with_tasks()[0]
        task.get_result = Mock(
            return_value=SetupHardDriveResult(iso_mount_location, ""))
        task.succeeded_signal.emit()

        self.assertEqual(self.module.install_tree_path, iso_mount_location)
        self.assertEqual(self.module._iso_name, "")

    def repr_test(self):
        self.module.set_device("device")
        self.module.set_directory("directory")
        self.module._install_tree_path = "install-tree-path"
        self.assertEqual(
            repr(self.module),
            "Source(type='HDD', partition='device', directory='directory')")
 def setUp(self):
     self.source_module = HardDriveSourceModule()
예제 #3
0
    def setUp(self):
        self.module = HardDriveSourceModule()
        self.interface = HardDriveSourceInterface(self.module)

        self.callback = PropertiesChangedCallback()
        self.interface.PropertiesChanged.connect(self.callback)