def test_get_stats_unsuccessful_fallback(self): stats = {'size': 15} _file = models.File('/not/a/file/path.none', stats=stats, get_stats=True) self.assertIsInstance(_file.stat, models.Stat) self.assertEqual(_file.size, 15) self.assertIsNone(_file.inode)
def test_number_only_no_path_init(self): _file = models.File('1234.ext') self.assertEqual(_file.abspath, '1234.ext') self.assertEqual(_file.path, '') self.assertEqual(_file.name, '1234.ext') self.assertEqual(_file.ext, 'ext') self.assertEqual(_file.head, '') self.assertEqual(_file.frame_as_str, '1234') self.assertEqual(_file.frame, 1234) self.assertEqual(_file.tail, '.ext') self.assertEqual(_file.padding, 4)
def test_number_only_init(self): _file = models.File('/path/to/01234.ext') self.assertEqual(_file.abspath, '/path/to/01234.ext') self.assertEqual(_file.path, '/path/to') self.assertEqual(_file.name, '01234.ext') self.assertEqual(_file.ext, 'ext') self.assertEqual(_file.head, '/path/to/') self.assertEqual(_file._framenum, '01234') self.assertEqual(_file.frame, 1234) self.assertEqual(_file.tail, '.ext') self.assertEqual(_file.padding, 5)
def test_normal_init(self): _file = models.File('/path/to/file.01000.more.ext') self.assertEqual(_file.abspath, '/path/to/file.01000.more.ext') self.assertEqual(_file.path, '/path/to') self.assertEqual(_file.name, 'file.01000.more.ext') self.assertEqual(_file.ext, 'ext') self.assertEqual(_file.namehead, 'file.') self.assertEqual(_file.head, '/path/to/file.') self.assertEqual(_file.frame_as_str, '01000') self.assertEqual(_file.frame, 1000) self.assertEqual(_file.tail, '.more.ext') self.assertEqual(_file.padding, 5)
def test_no_number_init(self): _file = models.File('/path/to/file.ext') self.assertEqual(_file.abspath, '/path/to/file.ext') self.assertEqual(_file.path, '/path/to') self.assertEqual(_file.name, 'file.ext') self.assertEqual(_file.ext, 'ext') self.assertEqual(_file.namehead, 'file') self.assertEqual(_file.head, '/path/to/file') self.assertEqual(_file.frame_as_str, '') self.assertEqual(_file.frame, None) self.assertEqual(_file.tail, '.ext') self.assertEqual(_file.padding, 0)
def test_use_stat_list(self): stats = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] _file = models.File('filename.ext', stats=stats) self.assertIsInstance(_file.stat, models.Stat) self.assertEqual(_file.size, 1) self.assertEqual(_file.inode, 2) self.assertEqual(_file.ctime, 3) self.assertEqual(_file.mtime, 4) self.assertEqual(_file.atime, 5) self.assertEqual(_file.mode, 6) self.assertEqual(_file.dev, 7) self.assertEqual(_file.nlink, 8) self.assertEqual(_file.uid, 9) self.assertEqual(_file.gid, 10)
def test_sequence_size(self): files = [ ('file.0.ext', { 'size': 10 }), ('file.1.ext', { 'size': 10 }), ('file.2.ext', { 'size': 10 }), ] sequence = models.Sequence() for _file in files: _file = models.File(*_file) sequence.append(_file) self.assertEqual(sequence.size, 30)
def test_use_stat_dict(self): stats = { 'size': 1, 'ino': 2, 'nlink': 3, 'dev': 4, 'mode': 5, 'uid': 6, 'gid': 7, 'mtime': 8, 'ctime': 9, 'atime': 10 } _file = models.File('filename.ext', stats=stats) self.assertEqual(_file.size, 1) self.assertEqual(_file.inode, 2) self.assertEqual(_file.nlink, 3) self.assertEqual(_file.dev, 4) self.assertEqual(_file.mode, 5) self.assertEqual(_file.uid, 6) self.assertEqual(_file.gid, 7) self.assertEqual(_file.mtime, 8) self.assertEqual(_file.ctime, 9) self.assertEqual(_file.atime, 10)
def test_sequence_append_exact_dupe(self): _file = models.File('/path/to/file.0100.ext') seq = models.Sequence(_file) with self.assertRaises(IndexError): seq.append('/path/to/file.0100.ext')
def test_sequence_append_file(self): file1 = models.File('/path/to/file.0100.ext') seq = models.Sequence(file1) seq.append(models.File('/path/to/file.0101.ext')) self.assertEqual(seq.frames, 2)
def test_get_seq_key_no_framenum(self): _file = models.File('/path/to/file.ext') self.assertEqual(_file.get_seq_key(True), '/path/to/file.ext') self.assertEqual(_file.get_seq_key(ignore_padding=False), '/path/to/file.ext')
def test_get_seq_key_padding(self): _file = models.File('/path/to/file.1000.ext') self.assertEqual(_file.get_seq_key(ignore_padding=False), '/path/to/file.%04d.ext')
def test_get_seq_key_no_padding(self): _file = models.File('/path/to/file.1000.ext') self.assertEqual(_file.get_seq_key(True), '/path/to/file.#.ext')
def test_ne_different_basename_same_number(self): other = models.File('/a/different/file.11.exr') self.assertNotEqual(self.file_11, other)
def test_sequence_force_consistent_padding(self): _file = models.File('/path/to/file.0100.ext') seq = models.Sequence(_file, ignore_padding=False) self.assertEqual(seq.seq_name, '/path/to/file.%04d.ext') with self.assertRaises(ValueError): seq.append('/path/to/file.00100.ext')
def test_sequence_append_non_member(self): _file = models.File('/path/to/file.0100.ext') seq = models.Sequence(_file) with self.assertRaises(ValueError): seq.append('/not/a/member.0001.ext')
def test_get_stat(self): _file = models.File(__file__, get_stats=True) self.assertIsInstance(_file.stat, os.stat_result)
def test_file_os_stat(self): _file = models.File(__file__, os.stat(__file__)) self.assertIsInstance(_file.stat, os.stat_result)
def test_sequence_inconsistent_padding_dupe(self): _file = models.File('/path/to/file.0100.ext') seq = models.Sequence(_file) self.assertEqual(seq.seq_name, '/path/to/file.#.ext') with self.assertRaises(IndexError): seq.append('/path/to/file.00100.ext')
def test_get_stats_override_supplied_stats(self): stats = {'size': -15, 'ino': None} _file = models.File(__file__, stats=stats, get_stats=True) self.assertIsInstance(_file.stat, os.stat_result) self.assertNotEqual(_file.size, -15) self.assertIsNotNone(_file.inode)
def test_eq_different_file_fail(self): other = models.File('/a/different/file.11.exr') self.assertFalse(self.file_11 == other)
def setUp(self): CONFIG.reset_defaults() self.file_10 = models.File('/some/file.10.dpx') self.file_11 = models.File('/some/file.11.dpx') self.file_011 = models.File('/some/file.011.dpx') self.file_012 = models.File('/some/file.012.dpx')