Skip to content

Commit 27053ae

Browse files
committed
Use iterable unpacking for widget test event sequences
1 parent 7117a16 commit 27053ae

File tree

1 file changed

+117
-94
lines changed

1 file changed

+117
-94
lines changed

lib/matplotlib/tests/test_widgets.py

Lines changed: 117 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,96 +1249,110 @@ def test_polygon_selector(draw_bounding_box):
12491249

12501250
# Simple polygon
12511251
expected_result = [(50, 50), (150, 50), (50, 150)]
1252-
event_sequence = (polygon_place_vertex(50, 50)
1253-
+ polygon_place_vertex(150, 50)
1254-
+ polygon_place_vertex(50, 150)
1255-
+ polygon_place_vertex(50, 50))
1252+
event_sequence = [
1253+
*polygon_place_vertex(50, 50),
1254+
*polygon_place_vertex(150, 50),
1255+
*polygon_place_vertex(50, 150),
1256+
*polygon_place_vertex(50, 50),
1257+
]
12561258
check_selector(event_sequence, expected_result, 1)
12571259

12581260
# Move first vertex before completing the polygon.
12591261
expected_result = [(75, 50), (150, 50), (50, 150)]
1260-
event_sequence = (polygon_place_vertex(50, 50)
1261-
+ polygon_place_vertex(150, 50)
1262-
+ [('on_key_press', dict(key='control')),
1263-
('onmove', dict(xdata=50, ydata=50)),
1264-
('press', dict(xdata=50, ydata=50)),
1265-
('onmove', dict(xdata=75, ydata=50)),
1266-
('release', dict(xdata=75, ydata=50)),
1267-
('on_key_release', dict(key='control'))]
1268-
+ polygon_place_vertex(50, 150)
1269-
+ polygon_place_vertex(75, 50))
1262+
event_sequence = [
1263+
*polygon_place_vertex(50, 50),
1264+
*polygon_place_vertex(150, 50),
1265+
('on_key_press', dict(key='control')),
1266+
('onmove', dict(xdata=50, ydata=50)),
1267+
('press', dict(xdata=50, ydata=50)),
1268+
('onmove', dict(xdata=75, ydata=50)),
1269+
('release', dict(xdata=75, ydata=50)),
1270+
('on_key_release', dict(key='control')),
1271+
*polygon_place_vertex(50, 150),
1272+
*polygon_place_vertex(75, 50),
1273+
]
12701274
check_selector(event_sequence, expected_result, 1)
12711275

12721276
# Move first two vertices at once before completing the polygon.
12731277
expected_result = [(50, 75), (150, 75), (50, 150)]
1274-
event_sequence = (polygon_place_vertex(50, 50)
1275-
+ polygon_place_vertex(150, 50)
1276-
+ [('on_key_press', dict(key='shift')),
1277-
('onmove', dict(xdata=100, ydata=100)),
1278-
('press', dict(xdata=100, ydata=100)),
1279-
('onmove', dict(xdata=100, ydata=125)),
1280-
('release', dict(xdata=100, ydata=125)),
1281-
('on_key_release', dict(key='shift'))]
1282-
+ polygon_place_vertex(50, 150)
1283-
+ polygon_place_vertex(50, 75))
1278+
event_sequence = [
1279+
*polygon_place_vertex(50, 50),
1280+
*polygon_place_vertex(150, 50),
1281+
('on_key_press', dict(key='shift')),
1282+
('onmove', dict(xdata=100, ydata=100)),
1283+
('press', dict(xdata=100, ydata=100)),
1284+
('onmove', dict(xdata=100, ydata=125)),
1285+
('release', dict(xdata=100, ydata=125)),
1286+
('on_key_release', dict(key='shift')),
1287+
*polygon_place_vertex(50, 150),
1288+
*polygon_place_vertex(50, 75),
1289+
]
12841290
check_selector(event_sequence, expected_result, 1)
12851291

12861292
# Move first vertex after completing the polygon.
12871293
expected_result = [(75, 50), (150, 50), (50, 150)]
1288-
event_sequence = (polygon_place_vertex(50, 50)
1289-
+ polygon_place_vertex(150, 50)
1290-
+ polygon_place_vertex(50, 150)
1291-
+ polygon_place_vertex(50, 50)
1292-
+ [('onmove', dict(xdata=50, ydata=50)),
1293-
('press', dict(xdata=50, ydata=50)),
1294-
('onmove', dict(xdata=75, ydata=50)),
1295-
('release', dict(xdata=75, ydata=50))])
1294+
event_sequence = [
1295+
*polygon_place_vertex(50, 50),
1296+
*polygon_place_vertex(150, 50),
1297+
*polygon_place_vertex(50, 150),
1298+
*polygon_place_vertex(50, 50),
1299+
('onmove', dict(xdata=50, ydata=50)),
1300+
('press', dict(xdata=50, ydata=50)),
1301+
('onmove', dict(xdata=75, ydata=50)),
1302+
('release', dict(xdata=75, ydata=50)),
1303+
]
12961304
check_selector(event_sequence, expected_result, 2)
12971305

12981306
# Move all vertices after completing the polygon.
12991307
expected_result = [(75, 75), (175, 75), (75, 175)]
1300-
event_sequence = (polygon_place_vertex(50, 50)
1301-
+ polygon_place_vertex(150, 50)
1302-
+ polygon_place_vertex(50, 150)
1303-
+ polygon_place_vertex(50, 50)
1304-
+ [('on_key_press', dict(key='shift')),
1305-
('onmove', dict(xdata=100, ydata=100)),
1306-
('press', dict(xdata=100, ydata=100)),
1307-
('onmove', dict(xdata=125, ydata=125)),
1308-
('release', dict(xdata=125, ydata=125)),
1309-
('on_key_release', dict(key='shift'))])
1308+
event_sequence = [
1309+
*polygon_place_vertex(50, 50),
1310+
*polygon_place_vertex(150, 50),
1311+
*polygon_place_vertex(50, 150),
1312+
*polygon_place_vertex(50, 50),
1313+
('on_key_press', dict(key='shift')),
1314+
('onmove', dict(xdata=100, ydata=100)),
1315+
('press', dict(xdata=100, ydata=100)),
1316+
('onmove', dict(xdata=125, ydata=125)),
1317+
('release', dict(xdata=125, ydata=125)),
1318+
('on_key_release', dict(key='shift')),
1319+
]
13101320
check_selector(event_sequence, expected_result, 2)
13111321

13121322
# Try to move a vertex and move all before placing any vertices.
13131323
expected_result = [(50, 50), (150, 50), (50, 150)]
1314-
event_sequence = ([('on_key_press', dict(key='control')),
1315-
('onmove', dict(xdata=100, ydata=100)),
1316-
('press', dict(xdata=100, ydata=100)),
1317-
('onmove', dict(xdata=125, ydata=125)),
1318-
('release', dict(xdata=125, ydata=125)),
1319-
('on_key_release', dict(key='control')),
1320-
('on_key_press', dict(key='shift')),
1321-
('onmove', dict(xdata=100, ydata=100)),
1322-
('press', dict(xdata=100, ydata=100)),
1323-
('onmove', dict(xdata=125, ydata=125)),
1324-
('release', dict(xdata=125, ydata=125)),
1325-
('on_key_release', dict(key='shift'))]
1326-
+ polygon_place_vertex(50, 50)
1327-
+ polygon_place_vertex(150, 50)
1328-
+ polygon_place_vertex(50, 150)
1329-
+ polygon_place_vertex(50, 50))
1324+
event_sequence = [
1325+
('on_key_press', dict(key='control')),
1326+
('onmove', dict(xdata=100, ydata=100)),
1327+
('press', dict(xdata=100, ydata=100)),
1328+
('onmove', dict(xdata=125, ydata=125)),
1329+
('release', dict(xdata=125, ydata=125)),
1330+
('on_key_release', dict(key='control')),
1331+
('on_key_press', dict(key='shift')),
1332+
('onmove', dict(xdata=100, ydata=100)),
1333+
('press', dict(xdata=100, ydata=100)),
1334+
('onmove', dict(xdata=125, ydata=125)),
1335+
('release', dict(xdata=125, ydata=125)),
1336+
('on_key_release', dict(key='shift')),
1337+
*polygon_place_vertex(50, 50),
1338+
*polygon_place_vertex(150, 50),
1339+
*polygon_place_vertex(50, 150),
1340+
*polygon_place_vertex(50, 50),
1341+
]
13301342
check_selector(event_sequence, expected_result, 1)
13311343

13321344
# Try to place vertex out-of-bounds, then reset, and start a new polygon.
13331345
expected_result = [(50, 50), (150, 50), (50, 150)]
1334-
event_sequence = (polygon_place_vertex(50, 50)
1335-
+ polygon_place_vertex(250, 50)
1336-
+ [('on_key_press', dict(key='escape')),
1337-
('on_key_release', dict(key='escape'))]
1338-
+ polygon_place_vertex(50, 50)
1339-
+ polygon_place_vertex(150, 50)
1340-
+ polygon_place_vertex(50, 150)
1341-
+ polygon_place_vertex(50, 50))
1346+
event_sequence = [
1347+
*polygon_place_vertex(50, 50),
1348+
*polygon_place_vertex(250, 50),
1349+
('on_key_press', dict(key='escape')),
1350+
('on_key_release', dict(key='escape')),
1351+
*polygon_place_vertex(50, 50),
1352+
*polygon_place_vertex(150, 50),
1353+
*polygon_place_vertex(50, 150),
1354+
*polygon_place_vertex(50, 50),
1355+
]
13421356
check_selector(event_sequence, expected_result, 1)
13431357

13441358

@@ -1355,10 +1369,12 @@ def onselect(vertices):
13551369
handle_props=dict(alpha=0.5),
13561370
draw_bounding_box=draw_bounding_box)
13571371

1358-
event_sequence = (polygon_place_vertex(50, 50)
1359-
+ polygon_place_vertex(150, 50)
1360-
+ polygon_place_vertex(50, 150)
1361-
+ polygon_place_vertex(50, 50))
1372+
event_sequence = [
1373+
*polygon_place_vertex(50, 50),
1374+
*polygon_place_vertex(150, 50),
1375+
*polygon_place_vertex(50, 150),
1376+
*polygon_place_vertex(50, 50),
1377+
]
13621378

13631379
for (etype, event_args) in event_sequence:
13641380
do_event(tool, etype, **event_args)
@@ -1413,28 +1429,31 @@ def test_polygon_selector_remove(idx, draw_bounding_box):
14131429
@pytest.mark.parametrize('draw_bounding_box', [False, True])
14141430
def test_polygon_selector_remove_first_point(draw_bounding_box):
14151431
verts = [(50, 50), (150, 50), (50, 150)]
1416-
event_sequence = (polygon_place_vertex(*verts[0]) +
1417-
polygon_place_vertex(*verts[1]) +
1418-
polygon_place_vertex(*verts[2]) +
1419-
polygon_place_vertex(*verts[0]) +
1420-
polygon_remove_vertex(*verts[0]))
1432+
event_sequence = [
1433+
*polygon_place_vertex(*verts[0]),
1434+
*polygon_place_vertex(*verts[1]),
1435+
*polygon_place_vertex(*verts[2]),
1436+
*polygon_place_vertex(*verts[0]),
1437+
*polygon_remove_vertex(*verts[0]),
1438+
]
14211439
check_polygon_selector(event_sequence, verts[1:], 2,
14221440
draw_bounding_box=draw_bounding_box)
14231441

14241442

14251443
@pytest.mark.parametrize('draw_bounding_box', [False, True])
14261444
def test_polygon_selector_redraw(ax, draw_bounding_box):
14271445
verts = [(50, 50), (150, 50), (50, 150)]
1428-
event_sequence = (polygon_place_vertex(*verts[0]) +
1429-
polygon_place_vertex(*verts[1]) +
1430-
polygon_place_vertex(*verts[2]) +
1431-
polygon_place_vertex(*verts[0]) +
1432-
# Polygon completed, now remove first two verts
1433-
polygon_remove_vertex(*verts[1]) +
1434-
polygon_remove_vertex(*verts[2]) +
1435-
# At this point the tool should be reset so we can add
1436-
# more vertices
1437-
polygon_place_vertex(*verts[1]))
1446+
event_sequence = [
1447+
*polygon_place_vertex(*verts[0]),
1448+
*polygon_place_vertex(*verts[1]),
1449+
*polygon_place_vertex(*verts[2]),
1450+
*polygon_place_vertex(*verts[0]),
1451+
# Polygon completed, now remove first two verts.
1452+
*polygon_remove_vertex(*verts[1]),
1453+
*polygon_remove_vertex(*verts[2]),
1454+
# At this point the tool should be reset so we can add more vertices.
1455+
*polygon_place_vertex(*verts[1]),
1456+
]
14381457

14391458
tool = widgets.PolygonSelector(ax, onselect=noop,
14401459
draw_bounding_box=draw_bounding_box)
@@ -1459,22 +1478,26 @@ def test_polygon_selector_verts_setter(fig_test, fig_ref, draw_bounding_box):
14591478
ax_ref = fig_ref.add_subplot()
14601479
tool_ref = widgets.PolygonSelector(
14611480
ax_ref, onselect=noop, draw_bounding_box=draw_bounding_box)
1462-
event_sequence = (polygon_place_vertex(*verts[0]) +
1463-
polygon_place_vertex(*verts[1]) +
1464-
polygon_place_vertex(*verts[2]) +
1465-
polygon_place_vertex(*verts[0]))
1481+
event_sequence = [
1482+
*polygon_place_vertex(*verts[0]),
1483+
*polygon_place_vertex(*verts[1]),
1484+
*polygon_place_vertex(*verts[2]),
1485+
*polygon_place_vertex(*verts[0]),
1486+
]
14661487
for (etype, event_args) in event_sequence:
14671488
do_event(tool_ref, etype, **event_args)
14681489

14691490

14701491
def test_polygon_selector_box(ax):
14711492
# Create a diamond shape
14721493
verts = [(20, 0), (0, 20), (20, 40), (40, 20)]
1473-
event_sequence = (polygon_place_vertex(*verts[0]) +
1474-
polygon_place_vertex(*verts[1]) +
1475-
polygon_place_vertex(*verts[2]) +
1476-
polygon_place_vertex(*verts[3]) +
1477-
polygon_place_vertex(*verts[0]))
1494+
event_sequence = [
1495+
*polygon_place_vertex(*verts[0]),
1496+
*polygon_place_vertex(*verts[1]),
1497+
*polygon_place_vertex(*verts[2]),
1498+
*polygon_place_vertex(*verts[3]),
1499+
*polygon_place_vertex(*verts[0]),
1500+
]
14781501

14791502
# Create selector
14801503
tool = widgets.PolygonSelector(ax, onselect=noop, draw_bounding_box=True)

0 commit comments

Comments
 (0)