Python: Improve tests and make validTest happy

This commit is contained in:
Rasmus Lerchedahl Petersen
2020-10-08 10:35:01 +02:00
parent cc0661bce1
commit 19796a4c9c
4 changed files with 52 additions and 34 deletions

View File

@@ -14,13 +14,21 @@ arg6 = "source6"
arg7 = "source7"
def SINK(x, expected=arg):
if x == expected:
def SINK_TEST(x, test):
if test(x):
print("OK")
else:
print("Unexpected flow", x)
def SINK(x, expected=arg):
SINK_TEST(x, test=lambda x: x == expected)
def SINK_F(x, unexpected=arg):
SINK_TEST(x, test=lambda x: x != unexpected)
def SINK1(x):
SINK(x, expected=arg1)
@@ -29,6 +37,10 @@ def SINK2(x):
SINK(x, expected=arg2)
def SINK2_F(x):
SINK_F(x, unexpected=arg2)
def SINK3(x):
SINK(x, expected=arg3)
@@ -66,13 +78,17 @@ def argument_passing(
SINK4(d)
SINK5(e)
SINK6(f)
SINK7(g["g"])
try:
SINK7(g["g"])
except:
print("OK")
@expects(7)
def test_argument_passing1():
argument_passing(arg1, *(arg2, arg3, arg4), e=arg5, **{"f": arg6, "g": arg7})
@expects(7)
def test_argument_passing2():
argument_passing(arg1, arg2, arg3, f=arg6)
@@ -123,10 +139,12 @@ def grab_foo_bar_baz(foo, **kwargs):
grab_bar_baz(**kwargs)
# It is not possible to pass `bar` into `kwargs`,
# since `bar` is a valid keyword argument.
def grab_bar_baz(bar, **kwargs):
SINK2(bar)
try:
SINK2(kwargs["bar"])
SINK2_F(kwargs["bar"])
except:
print("OK")
grab_baz(**kwargs)

View File

@@ -1,20 +1,20 @@
| argumentPassing.py:74:22:74:25 | ControlFlowNode for arg1 | argumentPassing.py:63:11:63:11 | ControlFlowNode for a |
| argumentPassing.py:78:22:78:25 | ControlFlowNode for arg1 | argumentPassing.py:63:11:63:11 | ControlFlowNode for a |
| argumentPassing.py:88:19:88:22 | ControlFlowNode for arg1 | argumentPassing.py:82:11:82:11 | ControlFlowNode for a |
| argumentPassing.py:89:19:89:22 | ControlFlowNode for arg1 | argumentPassing.py:82:11:82:11 | ControlFlowNode for a |
| argumentPassing.py:90:19:90:22 | ControlFlowNode for arg1 | argumentPassing.py:82:11:82:11 | ControlFlowNode for a |
| argumentPassing.py:101:45:101:48 | ControlFlowNode for arg1 | argumentPassing.py:94:11:94:11 | ControlFlowNode for a |
| argumentPassing.py:102:27:102:30 | ControlFlowNode for arg1 | argumentPassing.py:94:11:94:11 | ControlFlowNode for a |
| argumentPassing.py:103:27:103:30 | ControlFlowNode for arg1 | argumentPassing.py:94:11:94:11 | ControlFlowNode for a |
| argumentPassing.py:115:28:115:31 | ControlFlowNode for arg1 | argumentPassing.py:107:11:107:11 | ControlFlowNode for a |
| argumentPassing.py:141:46:141:49 | ControlFlowNode for arg1 | argumentPassing.py:122:11:122:13 | ControlFlowNode for foo |
| argumentPassing.py:149:14:149:17 | ControlFlowNode for arg1 | argumentPassing.py:147:15:147:15 | ControlFlowNode for a |
| argumentPassing.py:156:19:156:22 | ControlFlowNode for arg1 | argumentPassing.py:154:15:154:15 | ControlFlowNode for a |
| argumentPassing.py:164:15:164:18 | ControlFlowNode for arg1 | argumentPassing.py:162:19:162:22 | ControlFlowNode for Subscript |
| argumentPassing.py:171:13:171:16 | ControlFlowNode for arg1 | argumentPassing.py:169:15:169:15 | ControlFlowNode for a |
| argumentPassing.py:178:16:178:19 | ControlFlowNode for arg1 | argumentPassing.py:176:15:176:15 | ControlFlowNode for a |
| argumentPassing.py:185:15:185:18 | ControlFlowNode for arg1 | argumentPassing.py:183:15:183:15 | ControlFlowNode for a |
| argumentPassing.py:192:23:192:26 | ControlFlowNode for arg1 | argumentPassing.py:190:15:190:20 | ControlFlowNode for Subscript |
| argumentPassing.py:89:22:89:25 | ControlFlowNode for arg1 | argumentPassing.py:75:11:75:11 | ControlFlowNode for a |
| argumentPassing.py:94:22:94:25 | ControlFlowNode for arg1 | argumentPassing.py:75:11:75:11 | ControlFlowNode for a |
| argumentPassing.py:104:19:104:22 | ControlFlowNode for arg1 | argumentPassing.py:98:11:98:11 | ControlFlowNode for a |
| argumentPassing.py:105:19:105:22 | ControlFlowNode for arg1 | argumentPassing.py:98:11:98:11 | ControlFlowNode for a |
| argumentPassing.py:106:19:106:22 | ControlFlowNode for arg1 | argumentPassing.py:98:11:98:11 | ControlFlowNode for a |
| argumentPassing.py:117:45:117:48 | ControlFlowNode for arg1 | argumentPassing.py:110:11:110:11 | ControlFlowNode for a |
| argumentPassing.py:118:27:118:30 | ControlFlowNode for arg1 | argumentPassing.py:110:11:110:11 | ControlFlowNode for a |
| argumentPassing.py:119:27:119:30 | ControlFlowNode for arg1 | argumentPassing.py:110:11:110:11 | ControlFlowNode for a |
| argumentPassing.py:131:28:131:31 | ControlFlowNode for arg1 | argumentPassing.py:123:11:123:11 | ControlFlowNode for a |
| argumentPassing.py:159:46:159:49 | ControlFlowNode for arg1 | argumentPassing.py:138:11:138:13 | ControlFlowNode for foo |
| argumentPassing.py:167:14:167:17 | ControlFlowNode for arg1 | argumentPassing.py:165:15:165:15 | ControlFlowNode for a |
| argumentPassing.py:174:19:174:22 | ControlFlowNode for arg1 | argumentPassing.py:172:15:172:15 | ControlFlowNode for a |
| argumentPassing.py:182:15:182:18 | ControlFlowNode for arg1 | argumentPassing.py:180:19:180:22 | ControlFlowNode for Subscript |
| argumentPassing.py:189:13:189:16 | ControlFlowNode for arg1 | argumentPassing.py:187:15:187:15 | ControlFlowNode for a |
| argumentPassing.py:196:16:196:19 | ControlFlowNode for arg1 | argumentPassing.py:194:15:194:15 | ControlFlowNode for a |
| argumentPassing.py:203:15:203:18 | ControlFlowNode for arg1 | argumentPassing.py:201:15:201:15 | ControlFlowNode for a |
| argumentPassing.py:210:23:210:26 | ControlFlowNode for arg1 | argumentPassing.py:208:15:208:20 | ControlFlowNode for Subscript |
| classes.py:563:5:563:16 | SSA variable with_getitem | classes.py:557:15:557:18 | ControlFlowNode for self |
| classes.py:578:5:578:16 | SSA variable with_setitem | classes.py:573:15:573:18 | ControlFlowNode for self |
| classes.py:593:5:593:16 | SSA variable with_delitem | classes.py:588:15:588:18 | ControlFlowNode for self |

View File

@@ -1,9 +1,9 @@
| argumentPassing.py:78:28:78:31 | ControlFlowNode for arg2 | argumentPassing.py:64:11:64:11 | ControlFlowNode for b |
| argumentPassing.py:88:25:88:28 | ControlFlowNode for arg2 | argumentPassing.py:83:11:83:11 | ControlFlowNode for b |
| argumentPassing.py:89:27:89:30 | ControlFlowNode for arg2 | argumentPassing.py:83:11:83:11 | ControlFlowNode for b |
| argumentPassing.py:101:29:101:32 | ControlFlowNode for arg2 | argumentPassing.py:95:11:95:11 | ControlFlowNode for b |
| argumentPassing.py:116:30:116:33 | ControlFlowNode for arg2 | argumentPassing.py:108:11:108:11 | ControlFlowNode for b |
| argumentPassing.py:141:36:141:39 | ControlFlowNode for arg2 | argumentPassing.py:127:11:127:13 | ControlFlowNode for bar |
| argumentPassing.py:94:28:94:31 | ControlFlowNode for arg2 | argumentPassing.py:76:11:76:11 | ControlFlowNode for b |
| argumentPassing.py:104:25:104:28 | ControlFlowNode for arg2 | argumentPassing.py:99:11:99:11 | ControlFlowNode for b |
| argumentPassing.py:105:27:105:30 | ControlFlowNode for arg2 | argumentPassing.py:99:11:99:11 | ControlFlowNode for b |
| argumentPassing.py:117:29:117:32 | ControlFlowNode for arg2 | argumentPassing.py:111:11:111:11 | ControlFlowNode for b |
| argumentPassing.py:132:30:132:33 | ControlFlowNode for arg2 | argumentPassing.py:124:11:124:11 | ControlFlowNode for b |
| argumentPassing.py:159:36:159:39 | ControlFlowNode for arg2 | argumentPassing.py:145:11:145:13 | ControlFlowNode for bar |
| classes.py:565:18:565:21 | ControlFlowNode for arg2 | classes.py:556:15:556:17 | ControlFlowNode for key |
| classes.py:581:18:581:21 | ControlFlowNode for arg2 | classes.py:572:15:572:17 | ControlFlowNode for key |
| classes.py:595:22:595:25 | ControlFlowNode for arg2 | classes.py:587:15:587:17 | ControlFlowNode for key |

View File

@@ -1,7 +1,7 @@
| argumentPassing.py:78:34:78:37 | ControlFlowNode for arg3 | argumentPassing.py:65:11:65:11 | ControlFlowNode for c |
| argumentPassing.py:101:37:101:40 | ControlFlowNode for arg3 | argumentPassing.py:96:11:96:11 | ControlFlowNode for c |
| argumentPassing.py:102:43:102:46 | ControlFlowNode for arg3 | argumentPassing.py:96:11:96:11 | ControlFlowNode for c |
| argumentPassing.py:103:41:103:44 | ControlFlowNode for arg3 | argumentPassing.py:96:11:96:11 | ControlFlowNode for c |
| argumentPassing.py:117:36:117:39 | ControlFlowNode for arg3 | argumentPassing.py:109:11:109:11 | ControlFlowNode for c |
| argumentPassing.py:141:26:141:29 | ControlFlowNode for arg3 | argumentPassing.py:136:11:136:13 | ControlFlowNode for baz |
| argumentPassing.py:94:34:94:37 | ControlFlowNode for arg3 | argumentPassing.py:77:11:77:11 | ControlFlowNode for c |
| argumentPassing.py:117:37:117:40 | ControlFlowNode for arg3 | argumentPassing.py:112:11:112:11 | ControlFlowNode for c |
| argumentPassing.py:118:43:118:46 | ControlFlowNode for arg3 | argumentPassing.py:112:11:112:11 | ControlFlowNode for c |
| argumentPassing.py:119:41:119:44 | ControlFlowNode for arg3 | argumentPassing.py:112:11:112:11 | ControlFlowNode for c |
| argumentPassing.py:133:36:133:39 | ControlFlowNode for arg3 | argumentPassing.py:125:11:125:11 | ControlFlowNode for c |
| argumentPassing.py:159:26:159:29 | ControlFlowNode for arg3 | argumentPassing.py:154:11:154:13 | ControlFlowNode for baz |
| classes.py:581:26:581:29 | ControlFlowNode for arg3 | classes.py:571:15:571:19 | ControlFlowNode for value |