コード例 #1
0
 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))
コード例 #2
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)
コード例 #3
0
    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)
コード例 #4
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"))
コード例 #5
0
 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))
コード例 #6
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))
コード例 #7
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))