def test_relative_dirs_ignored(self): base = tempfile.mktemp() absolute = join(base, 'file.js') relative = join('somedir', 'file.js') self.assertEqual(relative, utils.normrelpath(absolute, relative)) self.assertEqual(absolute, utils.normrelpath(relative, absolute))
def test_find_double_parent(self): base = tempfile.mktemp() root = join(base, 'file.js') nested = join(base, 'src', 'dir', 'blahfile.js') self.assertEqual([pardir, pardir, 'file.js'], utils.normrelpath(nested, root).split(sep)) self.assertEqual(['src', 'dir', 'blahfile.js'], utils.normrelpath(root, nested).split(sep))
def test_find_common_same_base_parents_common(self): base = tempfile.mktemp() source = join(base, 'src', 'file.js') source_min = join(base, 'build', 'file.min.js') source_map = join(base, 'build', 'file.min.js.map') # mapping from source_map to source self.assertEqual([pardir, 'src', 'file.js'], utils.normrelpath(source_map, source).split(sep)) # for pointing from source_map.source to the source_min self.assertEqual('file.min.js', utils.normrelpath(source_map, source_min))
def test_find_common_same_base_same_level(self): base = tempfile.mktemp() source = join(base, 'src', 'file.js') source_alt = join(base, 'src', 'alt', 'file.js') source_min = join(base, 'src', 'file.min.js') source_map = join(base, 'src', 'file.min.js.map') # for generation of sourceMappingURL comment in source_min self.assertEqual('file.min.js.map', utils.normrelpath(source_min, source_map)) # for pointing from source_map.source to the source self.assertEqual('file.js', utils.normrelpath(source_map, source)) # for pointing from source_map.source to the source_min self.assertEqual('file.min.js', utils.normrelpath(source_map, source_min)) self.assertEqual(join('alt', 'file.js'), utils.normrelpath(source_map, source_alt))
def verify_write_sourcemap_args(mappings, sources, names, output_stream, sourcemap_stream, normalize_paths=True): def validate_path(path, name): # yes, rather than equality, this token is imported from # the sourcemap module is the identity of all invalid # sources. if path is INVALID_SOURCE: # well, this was preemptively replaced, still need to # report this fact as a warning. logger.warning( "%s is either undefine or invalid - it is replaced " "with '%s'", name, INVALID_SOURCE) output_js = getattr(output_stream, 'name', INVALID_SOURCE) output_js_map = getattr(sourcemap_stream, 'name', INVALID_SOURCE) validate_path(output_js, 'sourcemap.file') validate_path(output_js_map, 'sourceMappingURL') for idx, source in enumerate(sources): validate_path(source, 'sourcemap.sources[%d]' % idx) if normalize_paths: # Caveat: macpath.pardir ignored. return ( ( # filename '/'.join(normrelpath(output_js_map, output_js).split(sep)), # mappings mappings, # sources [ '/'.join(normrelpath(output_js_map, src).split(sep)) for src in sources ], # names names, ), '/'.join(normrelpath(output_js, output_js_map).split(sep))) return (output_js, mappings, sources, names), output_js_map
def test_find_same_prefix(self): base = tempfile.mktemp() src = join(base, 'basesrc', 'source.js') tgt = join(base, 'basetgt', 'target.js') self.assertEqual([pardir, 'basetgt', 'target.js'], utils.normrelpath(src, tgt).split(sep))