Skip to content

Commit a99b99d

Browse files
committed
TST: Simplify Qt pixel ratio test and ensure it tests initial scale
1 parent d1294c0 commit a99b99d

File tree

1 file changed

+23
-38
lines changed

1 file changed

+23
-38
lines changed

lib/matplotlib/tests/test_backend_qt.py

Lines changed: 23 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -175,45 +175,30 @@ def set_device_pixel_ratio(ratio):
175175
assert qt_canvas.device_pixel_ratio == ratio
176176

177177
qt_canvas.manager.show()
178+
qt_canvas.draw()
179+
qt_canvas.flush_events()
178180
size = qt_canvas.size()
179-
set_device_pixel_ratio(3)
180-
181-
# The DPI and the renderer width/height change
182-
assert fig.dpi == 360
183-
assert qt_canvas.renderer.width == 1800
184-
assert qt_canvas.renderer.height == 720
185-
186-
# The actual widget size and figure logical size don't change.
187-
assert size.width() == 600
188-
assert size.height() == 240
189-
assert qt_canvas.get_width_height() == (600, 240)
190-
assert (fig.get_size_inches() == (5, 2)).all()
191-
192-
set_device_pixel_ratio(2)
193-
194-
# The DPI and the renderer width/height change
195-
assert fig.dpi == 240
196-
assert qt_canvas.renderer.width == 1200
197-
assert qt_canvas.renderer.height == 480
198-
199-
# The actual widget size and figure logical size don't change.
200-
assert size.width() == 600
201-
assert size.height() == 240
202-
assert qt_canvas.get_width_height() == (600, 240)
203-
assert (fig.get_size_inches() == (5, 2)).all()
204-
205-
set_device_pixel_ratio(1.5)
206-
207-
# The DPI and the renderer width/height change
208-
assert fig.dpi == 180
209-
assert qt_canvas.renderer.width == 900
210-
assert qt_canvas.renderer.height == 360
211-
212-
# The actual widget size and figure logical size don't change.
213-
assert size.width() == 600
214-
assert size.height() == 240
215-
assert qt_canvas.get_width_height() == (600, 240)
216-
assert (fig.get_size_inches() == (5, 2)).all()
181+
182+
options = [
183+
(None, 360, 1800, 720), # Use ratio at startup time.
184+
(3, 360, 1800, 720), # Change to same ratio.
185+
(2, 240, 1200, 480), # Change to different ratio.
186+
(1.5, 180, 900, 360), # Fractional ratio.
187+
]
188+
for ratio, dpi, width, height in options:
189+
if ratio is not None:
190+
set_device_pixel_ratio(ratio)
191+
192+
# The DPI and the renderer width/height change
193+
assert fig.dpi == dpi
194+
assert qt_canvas.renderer.width == width
195+
assert qt_canvas.renderer.height == height
196+
197+
# The actual widget size and figure logical size don't change.
198+
assert size.width() == 600
199+
assert size.height() == 240
200+
assert qt_canvas.get_width_height() == (600, 240)
201+
assert (fig.get_size_inches() == (5, 2)).all()
217202

218203

219204
@pytest.mark.backend('QtAgg', skip_on_importerror=True)

0 commit comments

Comments
 (0)