@@ -16,12 +16,18 @@ def test_atyp_constructors():
1616 assert obj .__class__ .__name__ == "atyp"
1717
1818
19+ def check_regex (expected , actual ):
20+ result = re .match (expected + "$" , actual )
21+ if result is None :
22+ pytest .fail ("expected: '{}' != actual: '{}'" .format (expected , actual ))
23+
24+
1925@pytest .mark .parametrize (
2026 "rtrn_f, expected" ,
2127 [
22- (m .rtrn_valu , "rtrn_valu(_MvCtor)*_MvCtor " ),
23- (m .rtrn_rref , "rtrn_rref(_MvCtor)*_MvCtor " ),
24- (m .rtrn_cref , "rtrn_cref(_MvCtor)*_CpCtor " ),
28+ (m .rtrn_valu , "rtrn_valu(_MvCtor){1,3} " ),
29+ (m .rtrn_rref , "rtrn_rref(_MvCtor){1} " ),
30+ (m .rtrn_cref , "rtrn_cref_CpCtor " ),
2531 (m .rtrn_mref , "rtrn_mref" ),
2632 (m .rtrn_cptr , "rtrn_cptr" ),
2733 (m .rtrn_mptr , "rtrn_mptr" ),
@@ -34,25 +40,25 @@ def test_atyp_constructors():
3440 ],
3541)
3642def test_cast (rtrn_f , expected ):
37- assert re . match (expected , m .get_mtxt (rtrn_f ()))
43+ check_regex (expected , m .get_mtxt (rtrn_f ()))
3844
3945
4046@pytest .mark .parametrize (
4147 "pass_f, mtxt, expected" ,
4248 [
43- (m .pass_valu , "Valu" , "pass_valu:Valu(_MvCtor)* _CpCtor" ),
44- (m .pass_cref , "Cref" , "pass_cref:Cref(_MvCtor)*_MvCtor " ),
45- (m .pass_mref , "Mref" , "pass_mref:Mref(_MvCtor)*_MvCtor " ),
46- (m .pass_cptr , "Cptr" , "pass_cptr:Cptr(_MvCtor)*_MvCtor " ),
47- (m .pass_mptr , "Mptr" , "pass_mptr:Mptr(_MvCtor)*_MvCtor " ),
48- (m .pass_shmp , "Shmp" , "pass_shmp:Shmp(_MvCtor)*_MvCtor " ),
49- (m .pass_shcp , "Shcp" , "pass_shcp:Shcp(_MvCtor)*_MvCtor " ),
50- (m .pass_uqmp , "Uqmp" , "pass_uqmp:Uqmp(_MvCtor)*_MvCtor " ),
51- (m .pass_uqcp , "Uqcp" , "pass_uqcp:Uqcp(_MvCtor)*_MvCtor " ),
49+ (m .pass_valu , "Valu" , "pass_valu:Valu(_MvCtor){1,2} _CpCtor" ),
50+ (m .pass_cref , "Cref" , "pass_cref:Cref(_MvCtor){1,2} " ),
51+ (m .pass_mref , "Mref" , "pass_mref:Mref(_MvCtor){1,2} " ),
52+ (m .pass_cptr , "Cptr" , "pass_cptr:Cptr(_MvCtor){1,2} " ),
53+ (m .pass_mptr , "Mptr" , "pass_mptr:Mptr(_MvCtor){1,2} " ),
54+ (m .pass_shmp , "Shmp" , "pass_shmp:Shmp(_MvCtor){1,2} " ),
55+ (m .pass_shcp , "Shcp" , "pass_shcp:Shcp(_MvCtor){1,2} " ),
56+ (m .pass_uqmp , "Uqmp" , "pass_uqmp:Uqmp(_MvCtor){1,2} " ),
57+ (m .pass_uqcp , "Uqcp" , "pass_uqcp:Uqcp(_MvCtor){1,2} " ),
5258 ],
5359)
5460def test_load_with_mtxt (pass_f , mtxt , expected ):
55- assert re . match (expected , pass_f (m .atyp (mtxt )))
61+ check_regex (expected , pass_f (m .atyp (mtxt )))
5662
5763
5864@pytest .mark .parametrize (
@@ -111,7 +117,7 @@ def test_unique_ptr_roundtrip(num_round_trips=1000):
111117 for _ in range (num_round_trips ):
112118 id_orig = id (recycled )
113119 recycled = m .unique_ptr_roundtrip (recycled )
114- assert re . match ("passenger(_MvCtor)*_MvCtor " , m .get_mtxt (recycled ))
120+ check_regex ("passenger(_MvCtor){1,2} " , m .get_mtxt (recycled ))
115121 id_rtrn = id (recycled )
116122 # Ensure the returned object is a different Python instance.
117123 assert id_rtrn != id_orig
@@ -132,7 +138,7 @@ def test_unique_ptr_consumer_roundtrip(pass_f, rtrn_f, moved_out, moved_in):
132138 recycled = m .atyp ("passenger" )
133139 mtxt_orig = m .get_mtxt (recycled )
134140 ptr_orig = m .get_ptr (recycled )
135- assert re . match ( "passenger_(MvCtor ){1,2}" , mtxt_orig )
141+ check_regex ( "passenger(_MvCtor ){1,2}" , mtxt_orig )
136142
137143 pass_f (c , recycled ) # pass object to C++ consumer c
138144 if moved_out : # if moved (always), ensure it is flagged as disowned
0 commit comments