|
37 | 37 | from ..core import Workflow
|
38 | 38 | from ... import mark
|
39 | 39 | from ..specs import SpecInfo, BaseSpec, ShellSpec
|
| 40 | +from pydra.utils import exc_info_matches |
40 | 41 |
|
41 | 42 |
|
42 | 43 | def test_wf_no_input_spec():
|
@@ -102,13 +103,15 @@ def test_wf_dict_input_and_output_spec():
|
102 | 103 | wf.inputs.a = "any-string"
|
103 | 104 | wf.inputs.b = {"foo": 1, "bar": False}
|
104 | 105 |
|
105 |
| - with pytest.raises(TypeError, match="Cannot coerce 1.0 into <class 'str'>"): |
| 106 | + with pytest.raises(TypeError) as exc_info: |
106 | 107 | wf.inputs.a = 1.0
|
107 |
| - with pytest.raises( |
108 |
| - TypeError, |
109 |
| - match=("Could not coerce object, 'bad-value', to any of the union types "), |
110 |
| - ): |
| 108 | + assert exc_info_matches(exc_info, "Cannot coerce 1.0 into <class 'str'>") |
| 109 | + |
| 110 | + with pytest.raises(TypeError) as exc_info: |
111 | 111 | wf.inputs.b = {"foo": 1, "bar": "bad-value"}
|
| 112 | + assert exc_info_matches( |
| 113 | + exc_info, "Could not coerce object, 'bad-value', to any of the union types" |
| 114 | + ) |
112 | 115 |
|
113 | 116 | result = wf()
|
114 | 117 | assert result.output.a == "any-string"
|
@@ -5002,14 +5005,13 @@ def test_wf_input_output_typing():
|
5002 | 5005 | output_spec={"alpha": int, "beta": ty.List[int]},
|
5003 | 5006 | )
|
5004 | 5007 |
|
5005 |
| - with pytest.raises( |
5006 |
| - TypeError, match="Cannot coerce <class 'list'> into <class 'int'>" |
5007 |
| - ): |
| 5008 | + with pytest.raises(TypeError) as exc_info: |
5008 | 5009 | list_mult_sum(
|
5009 | 5010 | scalar=wf.lzin.y,
|
5010 | 5011 | in_list=wf.lzin.y,
|
5011 | 5012 | name="A",
|
5012 | 5013 | )
|
| 5014 | + exc_info_matches(exc_info, "Cannot coerce <class 'list'> into <class 'int'>") |
5013 | 5015 |
|
5014 | 5016 | wf.add( # Split over workflow input "x" on "scalar" input
|
5015 | 5017 | list_mult_sum(
|
|
0 commit comments