def testCreate(self, attach_mock, run_cmd_mock, pv_info_mock):
    """Test for bdev.LogicalVolume.Create() success"""
    attach_mock.return_value = True
    # This returns a successful RunCmd result
    run_cmd_mock.return_value = _FakeRunCmd(True, "", "")
    pv_info_mock.return_value = self.pv_info_return

    expect = bdev.LogicalVolume(self.test_unique_id, [], 1024,
                                self.test_params, {})
    got = bdev.LogicalVolume.Create(self.test_unique_id, [], 1024, None,
                                    self.test_params, False, {},
                                    test_kwarg="test")

    self.assertEqual(expect, got)
  def testLogicalVolumeImport(self, attach_mock):
    """Tests for bdev.LogicalVolume.Import()"""
    # Set up the mock object return value
    attach_mock.return_value = True

    # Create a fake logical volume
    inst = bdev.LogicalVolume(self.test_unique_id, [], 1024, {}, {})

    # Desired output command
    import_cmd = [constants.DD_CMD,
                  "of=%s" % inst.dev_path,
                  "bs=%s" % constants.DD_BLOCK_SIZE,
                  "oflag=direct", "conv=notrunc"]

    self.assertEqual(inst.Import(), import_cmd)
    def testLogicalVolumeExport(self, attach_mock):
        """Test for bdev.LogicalVolume.Export()"""
        # Set up the mock object return value
        attach_mock.return_value = True

        # Create a fake logical volume
        test_unique_id = ("ganeti",
                          "31225655-5775-4356-c212-e8b1e137550a.disk0")
        inst = bdev.LogicalVolume(test_unique_id, [], 1024, {}, {})

        # Desired output command
        export_cmd = [
            constants.DD_CMD,
            "if=%s" % inst.dev_path,
            "bs=%s" % constants.DD_BLOCK_SIZE,
            "count=%s" % inst.size, "iflag=direct"
        ]

        self.assertEqual(inst.Export(), export_cmd)