Skip to content

test_dpi_ratio_change fails on Windows/Qt5Agg #16123

@Kojoley

Description

@Kojoley
================================== FAILURES ===================================
____________________________ test_dpi_ratio_change ____________________________
[gw0] win32 -- Python 3.6.7 c:\miniconda36-x64\envs\test-environment\python.exe
    @pytest.mark.backend('Qt5Agg')
    def test_dpi_ratio_change():
        """
        Make sure that if _dpi_ratio changes, the figure dpi changes but the
        widget remains the same physical size.
        """
    
        prop = 'matplotlib.backends.backend_qt5.FigureCanvasQT._dpi_ratio'
    
        with mock.patch(prop, new_callable=mock.PropertyMock) as p:
    
            p.return_value = 3
    
            fig = plt.figure(figsize=(5, 2), dpi=120)
            qt_canvas = fig.canvas
            qt_canvas.show()
    
            from matplotlib.backends.backend_qt5 import qApp
    
            # Make sure the mocking worked
            assert qt_canvas._dpi_ratio == 3
    
            size = qt_canvas.size()
    
            qt_canvas.manager.show()
            qt_canvas.draw()
            qApp.processEvents()
    
            # The DPI and the renderer width/height change
            assert fig.dpi == 360
            assert qt_canvas.renderer.width == 1800
            assert qt_canvas.renderer.height == 720
    
            # The actual widget size and figure physical size don't change
            assert size.width() == 600
            assert size.height() == 240
            assert qt_canvas.get_width_height() == (600, 240)
            assert (fig.get_size_inches() == (5, 2)).all()
    
            p.return_value = 2
    
            assert qt_canvas._dpi_ratio == 2
    
            qt_canvas.draw()
            qApp.processEvents()
            # this second processEvents is required to fully run the draw.
            # On `update` we notice the DPI has changed and trigger a
            # resize event to refresh, the second processEvents is
            # required to process that and fully update the window sizes.
            qApp.processEvents()
    
            # The DPI and the renderer width/height change
            assert fig.dpi == 240
            assert qt_canvas.renderer.width == 1200
>           assert qt_canvas.renderer.height == 480
E           assert 474.0 == 480
E            +  where 474.0 = <matplotlib.backends.backend_agg.RendererAgg object at 0x000000CC215AE2B0>.height

Build log: https://ci.appveyor.com/project/Kojoley/matplotlib/builds/29921850/job/1rdi7tiyqly53n3h

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy