Beispiel #1
0
    def test_make_part_dir_relative_from_parts(self):
        path_instance = Path.from_parts(['dummy', 'relative', 'dir', 'path'])
        assert path_instance.parts == ('dummy', 'relative', 'dir', 'path')
        assert path_instance.filename == ''
        assert path_instance.ext == ''

        path_instance = Path.from_parts(
            ['dummy', '', 'relative', 'dir', 'path'])
        assert path_instance.parts == ('dummy', 'relative', 'dir', 'path')
        assert path_instance.filename == ''
        assert path_instance.ext == ''
Beispiel #2
0
    def test_make_part_dir_absolute_from_parts(self):
        path_instance = Path.from_parts(
            ['/', 'dummy', 'absolute', 'dir', 'path'])
        assert path_instance.parts == ('/', 'dummy', 'absolute', 'dir', 'path')
        assert path_instance.filename == ''
        assert path_instance.ext == ''

        path_instance = Path.from_parts(
            ['/', '', 'dummy', 'absolute', 'dir', 'path'])
        assert path_instance.parts == ('/', 'dummy', 'absolute', 'dir', 'path')
        assert path_instance.filename == ''
        assert path_instance.ext == ''
Beispiel #3
0
    def test_make_part_file_absolute_from_parts(self):
        path_instance = Path.from_parts(
            ['/', 'dummy', 'absolute', 'file', 'path', 'file.ext'])
        assert path_instance.parts == ('/', 'dummy', 'absolute', 'file',
                                       'path', 'file.ext')
        assert path_instance.filename == 'file'

        path_instance = Path.from_parts(
            ['/', 'dummy', '', 'absolute', 'file', 'path', 'file.ext'])
        assert path_instance.parts == ('/', 'dummy', 'absolute', 'file',
                                       'path', 'file.ext')
        assert path_instance.filename == 'file'
        assert path_instance.ext == 'ext'
Beispiel #4
0
    def test_make_part_file_relative_from_parts(self):
        path_instance = Path.from_parts(
            ['dummy', 'relative', 'file', 'path', 'file.ext'])
        assert path_instance.parts == ('dummy', 'relative', 'file', 'path',
                                       'file.ext')
        assert path_instance.filename == 'file'
        assert path_instance.ext == 'ext'

        path_instance = Path.from_parts(
            ['dummy', '', 'relative', 'file', 'path', 'file.ext'])
        assert path_instance.parts == ('dummy', 'relative', 'file', 'path',
                                       'file.ext')
        assert path_instance.filename == 'file'
        assert path_instance.ext == 'ext'
Beispiel #5
0
    def __init__(self, pattern, reserved=()):
        self._parser_ = Parser(reserved=reserved)

        # Compute resolvers list
        self._resolvers = self._parser_.parse(pattern)
        self._degenerate = False

        # Compute resolvers regex and full regex
        self._regex_path = Path.from_parts([resolver.regex for resolver in self._resolvers])
        self._regex = re.compile(str(self._regex_path))

        # Compute prefix
        for i, resolver in enumerate(self._resolvers):
            if not isinstance(resolver, ComponentResolver):
                self._prefix = self._regex_path[:i]
                break
        else:  # Degenerate one-file path case
            self._degenerate = True
            self._prefix = self._regex_path