예제 #1
0
    def test_init(self):
        """Try init BindMounts with minimal informations
        """
        args = [
            '-/.*',
            '+/foo',
            '-/foo/.*',
            '+/foo/bar',
        ]

        with self.assertRaises(InvalidRequestException):
            BindMounts().run(None, Payload({}))

        with self.assertRaises(InvalidRequestException):
            BindMounts().run(args, Payload({}))

        BindMounts().run(args, Payload(PAYLOAD_MINIMAL))
        BindMounts().run(None, Payload(PAYLOAD_MINIMAL))
예제 #2
0
    def test_directoy_names_containing_user(cls):
        """Check directory containing user
        """
        args = [
            '-/.*',
            '+/home/$USER',
        ]

        BindMounts().run(args, Payload(PAYLOAD_USER))
예제 #3
0
    def test_directoy_names_not_explicitly_listed(self):
        """Check directory exact match
        """
        args = [
            '+/something-else/',
        ]

        with self.assertRaises(UnauthorizedException):
            BindMounts().run(args, Payload(PAYLOAD_FOOBAR))
예제 #4
0
    def test_directoy_names_starting_with(cls):
        """Check directory starting with
        """
        args = [
            '-/.*',
            '+/foo',
        ]

        BindMounts().run(args, Payload(PAYLOAD_FOO))
예제 #5
0
    def test_directoy_names_exact_match(self):
        """Check directory exact match
        """
        args = [
            '-/.*',
            '+/foo/',
        ]

        with self.assertRaises(UnauthorizedException):
            BindMounts().run(args, Payload(PAYLOAD_FOOBAR))
예제 #6
0
    def test_invalid_rules_should_be_ignored(cls):
        """Unparsable rules are ignored
        """
        args = [
            '.*/.*',
            '%-/foo',
            '/foo/.*',
            '+/foo',
        ]

        BindMounts().run(args, Payload(PAYLOAD_FOO))
예제 #7
0
    def test_valid_paths(cls):
        """Check valid paths
        """
        args = [
            '-/.*',
            '+/foo',
            '-/foo/.*',
            '+/foo/bar',
        ]

        BindMounts().run(args, Payload(PAYLOAD_FOO))
예제 #8
0
    def test_invalid_paths(self):
        """Check invalid paths
        """
        args = [
            '-/.*',
            '+/foo',
            '-/foo/.*',
            '+/foo/bar',
        ]

        with self.assertRaises(UnauthorizedException):
            BindMounts().run(args, Payload(PAYLOAD_MANY))