예제 #1
0
    def unittest_command(self, args, exp_exit_code, exp_stderr_is_empty,
                         exp_stdout_is_empty):
        """
        Execute a test command and make assertions about the exit code, stderr, and stdout
        :param list args: The arguments needed to execute the Stratis command being tested
        :type args: List of str
        :param exp_exit_code: The expected exit code, 0, 1, or 2
        :param bool exp_stderr_is_empty: True if stderr is expected to be empty, otherwise False
        :param bool exp_stdout_is_empty: True if stdout is expected to be empty, otherwise False
        :return: None
        """
        exit_code, stdout, stderr = exec_test_command(args)

        self.assertEqual(
            exit_code,
            exp_exit_code,
            msg=os.linesep.join(
                ["", "stdout: %s" % stdout,
                 "stderr: %s" % stderr]),
        )

        if exp_stderr_is_empty:
            self.assertEqual(stderr, "")
        else:
            self.assertNotEqual(stderr, "")

        if exp_stdout_is_empty:
            self.assertEqual(stdout, "")
        else:
            self.assertNotEqual(stdout, "")
예제 #2
0
 def test_stratis_min_is_installed(self):
     """
     Verify that stratis-min can return a version string.
     """
     (return_code, stdout, stderr) = exec_test_command(["stratis-min", "--version"])
     self.assertEqual(return_code, 0)
     self.assertEqual(stderr, "")
     self._inequality_test(stdout, "")
예제 #3
0
    def test_predict_pool_usage(self):
        """
        Test pool subcommand.
        """

        (return_code, stdout, stderr) = exec_test_command(
            ["stratis-predict-usage", "pool", "--device-size=1099511627776"])

        self.assertEqual(return_code, 0)
        self.assertEqual(stderr, "")
        json.loads(stdout)
예제 #4
0
 def test_predict_usage_encrypted(self):
     """
     Verify that stratis-predict-usage can be run and returns correctly
     formatted output with encrypted flag set.
     """
     (return_code, stdout, stderr) = exec_test_command(
         ["stratis-predict-usage", "--encrypted"] + StratisCertify.DISKS
     )
     self.assertEqual(return_code, 0)
     self.assertEqual(stderr, "")
     json.loads(stdout)
예제 #5
0
def make_test_filesystem(pool_name):
    """
    Create a test filesystem that will later get destroyed
    :param pool_name: Name of a test pool
    :return: Name of the created filesystem
    """
    filesystem_name = fs_n()
    (return_code, _, stderr) = exec_test_command(
        [_STRATIS_CLI, "filesystem", "create", pool_name, filesystem_name])

    _raise_error_exception(return_code, stderr)
    return filesystem_name
예제 #6
0
def make_test_filesystem(pool_name):
    """
    Create a test filesystem that will later get destroyed
    :param pool_name: Name of a test pool
    :return: Name of the created filesystem
    """
    filesystem_name = fs_n()
    (return_code, _, stderr) = exec_test_command(
        [STRATIS_CLI, "filesystem", "create", pool_name, filesystem_name])
    assert return_code == 0, "return_code: %s, stderr: %s" % (return_code,
                                                              stderr)
    return filesystem_name
예제 #7
0
    def test_predict_filesystem_usage(self):
        """
        Test filesystem subcommand.
        """

        (return_code, stdout, stderr) = exec_test_command([
            "stratis-predict-usage", "filesystem",
            "--filesystem-size=1099511627776"
        ])

        self.assertEqual(return_code, 0)
        self.assertEqual(stderr, "")
        json.loads(stdout)
예제 #8
0
def make_test_pool(pool_disks):
    """
    Create a test pool that will later get destroyed
    :param list pool_disks: List of disks with which the pool will be created
    :return: Name of the created pool
    """
    pool_name = p_n()
    (return_code, _,
     stderr) = exec_test_command([STRATIS_CLI, "pool", "create", pool_name] +
                                 pool_disks)
    assert return_code == 0, "return_code: %s, stderr: %s" % (return_code,
                                                              stderr)
    return pool_name
예제 #9
0
 def test_get_managed_objects(self):
     """
     Test that GetManagedObjects returns a string w/out failure.
     """
     exit_code, stdout, stderr = exec_test_command([
         "busctl",
         "call",
         "org.storage.stratis1",
         "/org/storage/stratis1",
         "org.freedesktop.DBus.ObjectManager",
         "GetManagedObjects",
         "--verbose",
         "--no-pager",
         "--timeout=1200",
     ])
     self.assertEqual(exit_code, 0)
     self.assertEqual(stderr, "")
     self.assertNotEqual(stdout, "")
예제 #10
0
def make_test_pool(pool_disks, key_desc=None):
    """
    Create a test pool that will later get destroyed
    :param list pool_disks: List of disks with which the pool will be created
    :param key_desc: Key description associated with the key with which to encrypt
                     the block devices in the pool
    :type key_desc: str or NoneType
    :return: Name of the created pool
    """
    pool_name = p_n()

    args = [_STRATIS_CLI, "pool", "create"]
    if key_desc is not None:
        args += ["--key-desc", key_desc]
    args += [pool_name] + pool_disks

    (return_code, _, stderr) = exec_test_command(args, settle=True)

    _raise_error_exception(return_code, stderr)
    return pool_name