import pytest from unittest.mock import patch, MagicMock def test_shader_manager_initialization_and_compilation(): # Import inside test to allow patching OpenGL before import if needed # In this case, we patch the OpenGL.GL functions used by ShaderManager with patch("src.shader_manager.gl") as mock_gl: mock_gl.glCreateProgram.return_value = 1 mock_gl.glCreateShader.return_value = 2 mock_gl.glGetShaderiv.return_value = mock_gl.GL_TRUE mock_gl.glGetProgramiv.return_value = mock_gl.GL_TRUE from src.shader_manager import ShaderManager manager = ShaderManager() # Basic vertex and fragment shader source vert_src = "void main() {}" frag_src = "void main() {}" program_id = manager.compile_shader(vert_src, frag_src) assert program_id == 1 assert mock_gl.glCreateProgram.called assert mock_gl.glCreateShader.called