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, "")
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, "")
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)
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)
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
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
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)
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
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, "")
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