def test_unshare_pid_of_false_means_off(self): """Any unshare_pid value false-ish other than None means no unshare.""" self.assertOff( util._get_unshare_pid_args(unshare_pid=False, target=None)) self.assertOff(util._get_unshare_pid_args(False, "/target", 1)) self.assertOff(util._get_unshare_pid_args(False, "/", 0)) self.assertOff(util._get_unshare_pid_args("", "/target", 0))
def test_unshare_pid_true_and_not_root_raises(self): """When unshare_pid is True for non-root an error is raised.""" expected_msg = 'euid.* != 0' with self.assertRaisesRegexp(RuntimeError, expected_msg): util._get_unshare_pid_args(True, "/foo", 500) self.mock_geteuid.return_value = 500 with self.assertRaisesRegexp(RuntimeError, expected_msg): util._get_unshare_pid_args(True)
def test_unshare_pid_true_and_no_unshare_pid_raises(self): """Passing unshare_pid in as True and no command should raise.""" self.mock_has_unshare_pid.return_value = False expected_msg = 'no unshare command' with self.assertRaisesRegexp(RuntimeError, expected_msg): util._get_unshare_pid_args(True) with self.assertRaisesRegexp(RuntimeError, expected_msg): util._get_unshare_pid_args(True, "/foo", 0)
def test_unshare_pid_none_and_not_root_means_off(self): """If not root, then expect off.""" self.assertOff(util._get_unshare_pid_args(None, "/foo", 500)) self.assertOff(util._get_unshare_pid_args(None, "/", 500)) self.mock_geteuid.return_value = 500 self.assertOff(util._get_unshare_pid_args(None, "/")) self.assertOff( util._get_unshare_pid_args(unshare_pid=None, target="/foo"))
def test_euid0_target_slash(self): """If root and target is /, then expect off.""" self.assertOff(util._get_unshare_pid_args(None, "/", 0)) self.assertOff(util._get_unshare_pid_args(None, target=None, euid=0))
def test_euid0_target_not_slash(self): """If root and target is not /, then expect on.""" self.assertOn(util._get_unshare_pid_args(None, target="/foo", euid=0))
def test_unshare_pid_none_and_no_unshare_pid_means_off(self): """No unshare support and unshare_pid is None means off.""" self.mock_has_unshare_pid.return_value = False self.assertOff(util._get_unshare_pid_args(None, "/target", 0))