def test_yield_sequences_in_list_using(self): paths = [ 'seq/file_0003.0001.exr', 'seq/file_0005.0001.exr', 'seq/file_0007.0001.exr', ] expects = [os.path.join("seq", "file_3-7x2#.0001.exr")] template = FileSequence('seq/file_@@.0001.exr') actual = { str(fs) for fs in FileSequence.yield_sequences_in_list(paths, using=template) } for expect in expects: self.assertIn(expect, actual) expects = [ "seq/file_0003.1#.exr", "seq/file_0005.1#.exr", "seq/file_0007.1#.exr", ] actual = { str(fs) for fs in FileSequence.yield_sequences_in_list(paths) } for expect in expects: self.assertIn(expect, actual)
def _test_yield_sequences_in_list(self, sep='/'): paths = [ '/path/to/file20.v123.5.png', '/path/to/file20.v123.1.exr', '/path/to/file20.v123.2.exr', '/path/to/file20.v123.3.exr', '/path/to/.cruft.file', '/path/to/.cruft', '/path/to/file2.exr', '/path/to/file2.7zip', '/path/to/file.2.7zip', '/path/to/file.3.7zip', '/path/to/file.4.7zip', '/path/to/file.4.mp4', '', # empty path test "mixed_seqs/file5.ext", "mixed_seqs/file20.ext", "mixed_seqs/file30.ext", "mixed_seqs/no_ext", "mixed_seqs/no_ext.200,300@@@", "mixed_seqs/no_ext_10", "mixed_seqs/not_a_seq.ext", "mixed_seqs/seq.0001.ext", "mixed_seqs/seq.0002.ext", "mixed_seqs/seq.0003.ext", "mixed_seqs/seq2a.1.ext", "mixed_seqs/seq2a.2.ext", "mixed_seqs/seq2a.3.ext", "/path/to/file4-4.exr", "/path/to/file4-5.exr", "/path/to/file--4.exr", "path/01.exr", "path/02.exr", "path/03.exr", "path/001.file", "path/002.file", "path/003.file", "path/0001.jpg", "path/0002.jpg", "path/0003.jpg", "2frames.01.jpg", "2frames.02.jpg", '8frames.01.jpg', '8frames.02.jpg', '8frames.05.jpg', '8frames.07.jpg', '8frames.08.jpg', '8frames.10.jpg', '8frames.11.jpg', ] expected = { '/path/to/[email protected]', '/path/to/[email protected]', '/path/to/[email protected]', '/path/to/[email protected]', '/path/to/[email protected]', '/path/to/.cruft.file', '/path/to/.cruft', '/path/to/[email protected]', "mixed_seqs/file5,20,[email protected]", "mixed_seqs/[email protected]", "mixed_seqs/seq.1-3#.ext", "mixed_seqs/not_a_seq.ext", "mixed_seqs/no_ext", "mixed_seqs/no_ext_10@@", "mixed_seqs/no_ext.200,300@@@", '/path/to/file4-5--4@@.exr', '/path/to/file--4@@.exr', 'path/1-3@@.exr', 'path/1-3@@@.file', 'path/1-3#.jpg', '2frames.1-2@@.jpg', '8frames.1-2,5,7-8,10-11@@.jpg', } sub = self.RX_PATHSEP.sub paths = [sub(sep, p) for p in paths] expected = {sub(sep, p) for p in expected} actual = set( str(fs) for fs in FileSequence.yield_sequences_in_list(paths)) self.assertEquals(expected, actual) paths = list(map(_CustomPathString, paths)) actual = set( str(fs) for fs in FileSequence.yield_sequences_in_list(paths)) self.assertEquals({str(_CustomPathString(p)) for p in expected}, actual)
def test_yield_sequences_in_list(self): paths = [ '/path/to/file20.v123.5.png', '/path/to/file20.v123.1.exr', '/path/to/file20.v123.2.exr', '/path/to/file20.v123.3.exr', '/path/to/.cruft.file', '/path/to/.cruft', '/path/to/file2.exr', '/path/to/file2.7zip', '/path/to/file.2.7zip', '/path/to/file.3.7zip', '/path/to/file.4.7zip', '/path/to/file.4.mp4', '', # empty path test "mixed_seqs/file5.ext", "mixed_seqs/file20.ext", "mixed_seqs/file30.ext", "mixed_seqs/no_ext", "mixed_seqs/no_ext.200,300@@@", "mixed_seqs/no_ext_10", "mixed_seqs/not_a_seq.ext", "mixed_seqs/seq.0001.ext", "mixed_seqs/seq.0002.ext", "mixed_seqs/seq.0003.ext", "mixed_seqs/seq2a.1.ext", "mixed_seqs/seq2a.2.ext", "mixed_seqs/seq2a.3.ext", "/path/to/file4-4.exr", "/path/to/file4-5.exr", "/path/to/file--4.exr", "path/01.exr", "path/02.exr", "path/03.exr", "path/001.file", "path/002.file", "path/003.file", "path/0001.jpg", "path/0002.jpg", "path/0003.jpg", "2frames.01.jpg", "2frames.02.jpg", '8frames.01.jpg', '8frames.02.jpg', '8frames.05.jpg', '8frames.07.jpg', '8frames.08.jpg', '8frames.10.jpg', '8frames.11.jpg', ] expected = { '/path/to/[email protected]', '/path/to/[email protected]', '/path/to/[email protected]', '/path/to/[email protected]', '/path/to/[email protected]', '/path/to/.cruft.file', '/path/to/.cruft', '/path/to/[email protected]', "mixed_seqs/file5,20,[email protected]", "mixed_seqs/[email protected]", "mixed_seqs/seq.1-3#.ext", "mixed_seqs/not_a_seq.ext", "mixed_seqs/no_ext", "mixed_seqs/no_ext_10@@", "mixed_seqs/no_ext.200,300@@@", '/path/to/file4-5--4@@.exr', '/path/to/file--4@@.exr', 'path/1-3@@.exr', 'path/1-3@@@.file', 'path/1-3#.jpg', '2frames.1-2@@.jpg', '8frames.1-2,5,7-8,10-11@@.jpg', } actual = set(str(fs) for fs in FileSequence.yield_sequences_in_list(paths)) self.assertEquals(actual, expected) paths = imap(_CustomPathString, paths) actual = set(str(fs) for fs in FileSequence.yield_sequences_in_list(paths)) self.assertEquals(actual, {str(_CustomPathString(p)) for p in expected})