1 2import pytest 3from unittest.mock import patch, mock_open, MagicMock 4 5from UM.View.GL.OpenGLContext import OpenGLContext 6 7context_without_extensions = MagicMock() 8context_without_extensions.hasExtension = MagicMock(return_value = False) 9 10context_with_extensions = MagicMock() 11context_with_extensions.hasExtension = MagicMock(return_value = True) 12 13 14def test_setContext(): 15 surface_format = MagicMock() 16 opengl_context = MagicMock() 17 opengl_context.create = MagicMock(return_value = True) 18 with patch("UM.View.GL.OpenGLContext.QSurfaceFormat", MagicMock(return_value = surface_format)): 19 with patch("UM.View.GL.OpenGLContext.QOpenGLContext", MagicMock(return_value=opengl_context)): 20 assert OpenGLContext.setContext(1,2) == opengl_context 21 opengl_context.setFormat.assert_called_once_with(surface_format) 22 23 24def test_setContext_failed(): 25 surface_format = MagicMock() 26 opengl_context = MagicMock() 27 opengl_context.create = MagicMock(return_value=False) 28 with patch("UM.View.GL.OpenGLContext.QSurfaceFormat", MagicMock(return_value=surface_format)): 29 with patch("UM.View.GL.OpenGLContext.QOpenGLContext", MagicMock(return_value=opengl_context)): 30 assert OpenGLContext.setContext(1, 2) is None 31 32 33@pytest.mark.parametrize("context, major_version, minor_version, result", [(context_with_extensions, 4, 1, True), 34 (context_with_extensions, 5, 0, True), 35 (context_with_extensions, 3, 0, True), 36 (context_without_extensions, 3, 0, False), 37 (context_without_extensions, 4, 1, True)]) 38def test_supportsVertexArrayObjects(context, major_version, minor_version, result): 39 OpenGLContext.major_version = major_version 40 OpenGLContext.minor_version = major_version 41 assert OpenGLContext.supportsVertexArrayObjects(context) == result 42 43 44@pytest.mark.parametrize("major_version, minor_version, result", [(3, 9009, True), 45 (4, 0, True), 46 (4, 1, False), 47 (5, 2, False)]) 48def test_isLegacyOpenGl(major_version, minor_version, result): 49 OpenGLContext.major_version = major_version 50 OpenGLContext.minor_version = minor_version 51 assert OpenGLContext.isLegacyOpenGL() == result 52