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)
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)
def test_private_constructor(self): with self.assertRaisesRegex( NotImplementedError, 'Artifact constructor.*private.*Artifact.load'): Artifact()