예제 #1
0
    def create_partition(self, free_space, size=None, fstype="ext4", label=None, ptype="primary"):
        if size is None:
            size = free_space.size

        # create "user input" for the new partition
        parent_selection = ProxyDataContainer(parent_device=free_space.parents[0],
                                              free_space=free_space,
                                              selected_size=size)
        size_selection = ProxyDataContainer(total_size=size,
                                            parents=[parent_selection])
        user_input = ProxyDataContainer(device_type="partition",
                                        size_selection=size_selection,
                                        filesystem=fstype,
                                        name=None,
                                        label=label,
                                        mountpoint=None,
                                        encrypt=False,
                                        passphrase=None,
                                        raid_level=None,
                                        advanced={"parttype": ptype})

        ret = self.blivet_utils.add_device(user_input)

        self.assertTrue(ret.success)
        self.assertIsNone(ret.message)
        self.assertIsNone(ret.exception)
        self.assertIsNone(ret.traceback)

        return ret.actions
예제 #2
0
    def test_convert_args(self):
        # 'normal' arguments
        args = ["abcdef", 1, 1.01, True, None]
        converted_args = BlivetUtilsServer._args_convertTo_objects(
            MagicMock(), args)
        self.assertEqual(converted_args, args)

        # ProxyID arguments
        test_dict = {}

        arg1 = ProxyID()
        arg1_obj = MagicMock(blivet_object=MagicMock())
        test_dict[arg1.id] = arg1_obj
        arg2 = ProxyID()
        arg2_obj = MagicMock(blivet_object=MagicMock())
        test_dict[arg2.id] = arg2_obj

        converted_args = BlivetUtilsServer._args_convertTo_objects(
            MagicMock(object_dict=test_dict), [arg1, arg2])
        self.assertEqual(converted_args,
                         [arg1_obj.blivet_object, arg2_obj.blivet_object])

        # ProxyDataContainer as an argument
        test_dict = {}

        arg3 = ProxyID()
        arg3_obj = MagicMock(blivet_object=MagicMock())
        test_dict[arg3.id] = arg3_obj

        args = [ProxyDataContainer(data1="abcdef", data2=1, data3=arg3)]
        converted_args = BlivetUtilsServer._args_convertTo_objects(
            MagicMock(object_dict=test_dict), args)
        self.assertEqual(converted_args[0]["data1"], "abcdef")
        self.assertEqual(converted_args[0]["data2"], 1)
        self.assertEqual(converted_args[0]["data3"], arg3_obj.blivet_object)
예제 #3
0
    def test_convert_args(self):
        client = BlivetGUIClient(MagicMock())

        # 'normal' arguments
        args = ["abcdef", 1, 1.01, True, None, Size("8 GiB")]
        converted_args = client._args_convertTo_id(args)
        self.assertEqual(converted_args, args)

        # ClientProxyObject (id of object should be returned)
        args = [ClientProxyObject(MagicMock(), ProxyID())]
        converted_args = client._args_convertTo_id(args)
        self.assertTrue(isinstance(converted_args[0], ProxyID))
        self.assertEqual(converted_args, [arg.proxy_id for arg in args])

        # ProxyDataContainer
        args = [
            ProxyDataContainer(data1="abcdef",
                               data2=Size("8 GiB"),
                               data3=ClientProxyObject(MagicMock(), ProxyID()))
        ]
        converted_args = client._args_convertTo_id(args)
        self.assertEqual(converted_args[0].data1, args[0].data1)
        self.assertEqual(converted_args[0].data2, args[0].data2)
        self.assertTrue(isinstance(converted_args[0].data3, ProxyID))
        self.assertEqual(converted_args[0].data3, args[0].data3.proxy_id)

        # ProxyDataContainer inside ProxyDataContainer
        args = [
            ProxyDataContainer(data1="abcdef",
                               data2=Size("8 GiB"),
                               data3=ProxyDataContainer(
                                   dataA="xyz",
                                   dataB=ClientProxyObject(
                                       MagicMock(), ProxyID())))
        ]
        converted_args = client._args_convertTo_id(args)
        self.assertEqual(converted_args[0].data1, args[0].data1)
        self.assertEqual(converted_args[0].data2, args[0].data2)
        self.assertTrue(isinstance(converted_args[0].data3,
                                   ProxyDataContainer))
        self.assertEqual(converted_args[0].data3.dataA, args[0].data3.dataA)
        self.assertTrue(isinstance(converted_args[0].data3.dataB, ProxyID))
        self.assertEqual(converted_args[0].data3.dataB,
                         args[0].data3.dataB.proxy_id)
예제 #4
0
    def format_device(self,
                      device,
                      fstype="ext4",
                      label=None,
                      mountpoint=None):
        # prepare "user input" for editting (in this case formatting) a device
        user_input = ProxyDataContainer(edit_device=device,
                                        format=True,
                                        filesystem=fstype,
                                        label=label,
                                        mountpoint=mountpoint)

        ret = self.blivet_utils.format_device(user_input)
        self.assertTrue(ret.success)
        self.assertIsNone(ret.message)
        self.assertIsNone(ret.exception)
        self.assertIsNone(ret.traceback)

        return ret.actions
예제 #5
0
    def test_proxy_data_container(self):
        container = ProxyDataContainer(a="a", b="b", c="c")

        # __iter__
        args = []

        for item in container:
            args.append(item)

        self.assertEqual(sorted(args), ["a", "b", "c"])

        # __getitem__
        self.assertEqual(container["a"], "a")

        # __setitem__
        container["a"] = 1
        self.assertEqual(container["a"], 1)

        # __getattr__
        self.assertEqual(container.b, "b")

        with self.assertRaises(AttributeError):
            container.d  # pylint: disable=W0104