示例#1
0
    def test_call(self):
        executor = SubprocessExecutor()
        future = executor(self.workflow,
                          input_artifact_filepaths={
                            'input1': self.artifact_fp1,
                            'input2': self.artifact_fp2
                          },
                          parameter_references={
                            'param1': 99,
                            'param2': -999,
                          },
                          output_artifact_filepaths={
                            'concatenated_inputs': self.artifact_fp3
                          })
        self.assertIsInstance(future, concurrent.futures.Future)

        completed_process = future.result()
        self.assertIsInstance(completed_process, subprocess.CompletedProcess)
        self.assertEqual(completed_process.returncode, 0)
        self.assertEqual(completed_process.stdout, b'')
        self.assertEqual(completed_process.stderr, b'')

        result = Artifact(self.artifact_fp3)
        self.assertEqual(result.data,
                         [-1, 42, 0, 43, 43, 1, 2, 100, 99, -999])
        self.assertIsNotNone(result.provenance)
        self.assertEqual(result.type, DummyType)
示例#2
0
    def test_constructor_no_provenance(self):
        fp = os.path.join(self.test_dir.name, 'artifact.qtf')
        Artifact.save([-1, 42, 0, 43, 43], DummyType, None, fp)

        artifact = Artifact(fp)

        self.assertEqual(artifact.data, [-1, 42, 0, 43, 43])
        self.assertEqual(artifact.type, DummyType)
        self.assertEqual(artifact.provenance, None)
        self.assertIsInstance(artifact.uuid, uuid.UUID)
        self.assertEqual(artifact.uuid.version, 4)
示例#3
0
 def test_private_constructor(self):
     with self.assertRaisesRegex(
             NotImplementedError,
             'Artifact constructor.*private.*Artifact.load'):
         Artifact()