コード例 #1
0
ファイル: TaskTest.py プロジェクト: paulondc/kombi
    def testTaskJson(self):
        """
        Test that you can convert a Task to json and back.
        """
        class DummyTask(Task):
            pass

        Task.register("dummy", DummyTask)

        dummyTask = Task.create('dummy')
        crawlers = FsCrawler.createFromPath(
            BaseTestCase.dataTestsDirectory()).glob(['mov'])
        targetPaths = []
        for crawler in crawlers:
            target = '{}_target.mov'.format(crawler.var('name'))
            targetPath = os.path.join(BaseTestCase.dataTestsDirectory(),
                                      target)
            targetPaths.append(targetPath)
            dummyTask.add(crawler, targetPath)
        jsonResult = dummyTask.toJson()
        resultTask = Task.createFromJson(jsonResult)
        self.assertCountEqual(dummyTask.optionNames(),
                              resultTask.optionNames())
        self.assertCountEqual(dummyTask.metadataNames(),
                              resultTask.metadataNames())
        self.assertCountEqual(
            map(lambda x: x.var('filePath'), dummyTask.crawlers()),
            map(lambda x: x.var('filePath'), resultTask.crawlers()))
        self.assertCountEqual(map(dummyTask.target, dummyTask.crawlers()),
                              map(resultTask.target, resultTask.crawlers()))
コード例 #2
0
ファイル: TaskTest.py プロジェクト: paulondc/kombi
    def testTaskOutput(self):
        """
        Test that task output is returned properly.
        """
        class DummyTask(Task):
            pass

        Task.register("dummy", DummyTask)

        dummyTask = Task.create('dummy')
        crawlers = FsCrawler.createFromPath(
            BaseTestCase.dataTestsDirectory()).glob(['mov'])
        targetPaths = []
        for crawler in crawlers:
            target = '{}_target.mov'.format(crawler.var('name'))
            targetPath = os.path.join(BaseTestCase.dataTestsDirectory(),
                                      target)
            targetPaths.append(targetPath)
            crawler.setVar('contextVarTest', 1, True)
            dummyTask.add(crawler, targetPath)
        result = dummyTask.output()
        self.assertEqual(len(result), len(crawlers))
        self.assertCountEqual(map(lambda x: x.var('filePath'), result),
                              targetPaths)
        self.assertEqual(list(map(lambda x: x.var('contextVarTest'), result)),
                         [1] * len(crawlers))
        for crawler in result:
            self.assertIn('contextVarTest', crawler.contextVarNames())
コード例 #3
0
ファイル: TaskTest.py プロジェクト: paulondc/kombi
    def testTaskRegistration(self):
        """
        Test that you can register a new Task.
        """
        class DummyTask(Task):
            pass

        Task.register("dummy", DummyTask)
        self.assertIn("dummy", Task.registeredNames())
        self.assertRaises(TaskTypeNotFoundError, Task.create, 'badTask')
コード例 #4
0
from kombi.Task import Task


class EchoTask(Task):
    """
    Dummy task used to check the output.
    """


Task.register('echoTask', EchoTask)
コード例 #5
0
import sys
from kombi.Task import Task


class PythonMajorVerTestTask(Task):
    """
    Dummy task for testing python 2 subprocess.
    """
    def _perform(self):
        sourceCrawler = self.crawlers()[0]
        sourceCrawler.setVar("majorVer", sys.version_info[0])
        return [sourceCrawler.clone()]


Task.register('pythonMajorVerTestTask', PythonMajorVerTestTask)
コード例 #6
0
from kombi.Task import Task
from kombi.TaskWrapper import TaskWrapper


class PythonTestTask(Task):
    """
    Dummy task for testing Python subprocess.
    """
    def _perform(self):
        sourceCrawler = self.crawlers()[0]
        if self.option('runPython'):
            dummyTask = Task.create('pythonTestTask')
            dummyTask.setOption("runPython", False)
            dummyTask.add(sourceCrawler)
            wrapper = TaskWrapper.create('python')
            result = wrapper.run(dummyTask)
        else:
            import OpenImageIO
            sourceCrawler.setVar("testPython", OpenImageIO.VERSION)
            result = [sourceCrawler.clone()]

        return result


Task.register('pythonTestTask', PythonTestTask)
コード例 #7
0
from kombi.Task import Task

class VendorData(Task):
    """
    Implements a task that writes a json file.
    """

    def _perform(self):
        """
        Implement the execution of the task.
        """
        crawler = self.crawlers()[0]
        targetFilePath = self.target(crawler)

        data = {
            "vendorVersion": crawler.var('vendorVersion'),
            "plateName": crawler.var('plateName')
        }

        with open(targetFilePath, 'w') as f:
            json.dump(data, f)

        return super(VendorData, self)._perform()


# registering task
Task.register(
    'vendorData',
    VendorData
)