def testChmodDir(self): """ Test that the chmod task works properly on a directory. """ crawler = FsCrawler.createFromPath(self.__dir) fileCrawler = FsCrawler.createFromPath(self.__path) chmodTask = Task.create('chmod') chmodTask.add(crawler, self.__dir) chmodTask.add(fileCrawler, self.__dir) dirPerm = "775" filePerm = "664" chmodTask.setOption('directoryMode', dirPerm) chmodTask.setOption('fileMode', filePerm) result = chmodTask.output() self.assertEqual(len(result), 1) self.assertEqual(self.__getPermission(self.__dir), dirPerm) self.assertEqual(self.__getPermission(self.__path), filePerm)
def testTemplate(self): """ Test that the Template works properly. """ crawler = FsCrawler.createFromPath(self.__file) value = '(dirname {filePath})/(newver <parent>)/{name}.(pad {frame} 6).{ext}' result = Template(value).valueFromCrawler(crawler) self.assertEqual( os.path.normpath(result), os.path.join(BaseTestCase.dataTestsDirectory(), 'v003', 'RND-TST-SHT_lighting_beauty_sr.001001.exr'))
def testNestProcedureTemplateSimple(self): """ Test simple nested procedures in the template. """ crawler = FsCrawler.createFromPath(self.__file) value = "/a/b/c/(dirname(dirname '/d/e/f'))/(newver <parent>)/{name}.(pad {frame} 6).{ext}" result = Template(value).valueFromCrawler(crawler) self.assertEqual( os.path.normpath(result), os.path.normpath( '/a/b/c/d/v001/RND-TST-SHT_lighting_beauty_sr.001001.exr'))
def testRemove(self): """ Test that the remove task works properly. """ crawler = FsCrawler.createFromPath(self.__path) removeTask = Task.create('remove') removeTask.add(crawler, self.__path) result = removeTask.output() self.assertEqual(len(result), 1) crawler = result[0] self.assertFalse(os.path.isfile(crawler.var("filePath")))
def testNestProcedureTemplateMultiple(self): """ Test multiple nested procedures in the template. """ crawler = FsCrawler.createFromPath(self.__file) value = "/a/b/c/(concat (dirname(dirname (dirname '/d/e/f/g'))) '_' (dirname (dirname {var})))/(newver <parent>)/{name}.(pad {frame} 6).{ext}" result = Template(value).valueFromCrawler(crawler, extraVars={'var': 'h/j/l'}) self.assertEqual( os.path.normpath(result), os.path.normpath( '/a/b/c/d_h/v001/RND-TST-SHT_lighting_beauty_sr.001001.exr'))
def testImageThumbnail(self): """ Test that the ImageThumbnail task works properly. """ crawler = FsCrawler.createFromPath(self.__sourcePath) thumbnailTask = Task.create('imageThumbnail') thumbnailTask.add(crawler, self.__targetPath) result = thumbnailTask.output() self.assertEqual(len(result), 1) crawler = result[0] self.assertEqual(crawler.var("width"), 640) self.assertEqual(crawler.var("height"), 360)
def testChecksumTask(self): """ Test that the checksum task works properly. """ crawler = FsCrawler.createFromPath(self.__sourcePath) checksumTask = Task.create('checksum') checksumTask.add(crawler, self.__targetPath) result = checksumTask.output() self.assertEqual(len(result), 1) checksumTask = Task.create('checksum') checksumTask.add(crawler, self.__otherPath) self.assertRaises(ChecksumTaskMatchError, checksumTask.output)
def testNestProcedureTemplateArithmetic(self): """ Test arithmetic nested procedures in the template. """ crawler = FsCrawler.createFromPath(self.__file) value = "/a/b/c/({a} + (sum {b} 2))/(newver <parent>)/{name}.(pad {frame} 6).{ext}" result = Template(value).valueFromCrawler(crawler, extraVars={ 'a': 2, 'b': 3 }) self.assertEqual( os.path.normpath(result), os.path.normpath( '/a/b/c/7/v001/RND-TST-SHT_lighting_beauty_sr.001001.exr'))
def testChmodFile(self): """ Test that the chmod task works properly on a file. """ crawler = FsCrawler.createFromPath(self.__path) chmodTask = Task.create('chmod') chmodTask.add(crawler, self.__path) for permission in ["644", "444", "744", "664"]: chmodTask.setOption('directoryMode', permission) chmodTask.setOption('fileMode', permission) result = chmodTask.output() self.assertEqual(len(result), 1) crawler = result[0] self.assertEqual(self.__getPermission(crawler.var('filePath')), permission)
def testCopy(self): """ Test that the copy task works properly. """ crawler = FsCrawler.createFromPath(self.__sourcePath) copyTask = Task.create('copy') copyTask.add(crawler, self.__targetPath) result = copyTask.output() self.assertEqual(len(result), 1) crawler = result[0] self.assertEqual(crawler.var("filePath"), self.__targetPath) self.assertTrue(os.path.isfile(crawler.var("filePath"))) self.assertIsInstance(crawler, ExrCrawler) self.assertEqual(crawler.var("width"), crawler.var("width")) self.assertEqual(crawler.var("height"), crawler.var("height"))
def testSymlink(self): """ Test that hardlinks are skipped when running the chmod task. """ link = os.path.join(self.dataTestsDirectory(), 'symlink.exr') os.symlink(self.__path, link) self.assertEqual(self.__getPermission(link), '664') self.assertTrue(os.path.islink(link)) crawler = FsCrawler.createFromPath(link) chmodTask = Task.create('chmod') chmodTask.add(crawler, link) chmodTask.setOption('directoryMode', '775') chmodTask.setOption('fileMode', '775') chmodTask.output() self.assertEqual(self.__getPermission(link), '664') self.addCleanup(self.cleanup, link)
def testResizeImage(self): """ Test that the ResizeImage task works properly. """ crawler = FsCrawler.createFromPath(self.__sourcePath) resizeTask = Task.create('resizeImage') resizeTask.add(crawler, self.__targetPath) resizeTask.setOption("width", "480") resizeTask.setOption("height", "270") for convertToRGBA in [False, True]: resizeTask.setOption("convertToRGBA", convertToRGBA) result = resizeTask.output() self.assertEqual(len(result), 1) crawler = result[0] self.assertEqual(crawler.var("width"), 480) self.assertEqual(crawler.var("height"), 270)