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 == ''
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 == ''
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'
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'
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