34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
import pytest
|
|
from unittest.mock import patch, MagicMock
|
|
|
|
def test_dynamic_background_rendering():
|
|
# Mock OpenGL before importing
|
|
with patch("src.shader_manager.gl") as mock_gl:
|
|
from src.shader_manager import ShaderManager
|
|
|
|
# Setup mock return values
|
|
mock_gl.glCreateProgram.return_value = 1
|
|
mock_gl.glCreateShader.return_value = 2
|
|
mock_gl.glGetShaderiv.return_value = 1 # GL_TRUE
|
|
mock_gl.glGetProgramiv.return_value = 1 # GL_TRUE
|
|
mock_gl.glGetUniformLocation.return_value = 10
|
|
|
|
manager = ShaderManager()
|
|
manager.setup_background_shader()
|
|
|
|
# Verify background program was created
|
|
assert manager.bg_program == 1
|
|
assert mock_gl.glCreateProgram.called
|
|
|
|
# Render background
|
|
manager.render_background(800, 600, 1.0)
|
|
|
|
# Verify OpenGL calls
|
|
mock_gl.glUseProgram.assert_any_call(1)
|
|
mock_gl.glDrawArrays.assert_called_with(mock_gl.GL_TRIANGLE_STRIP, 0, 4)
|
|
mock_gl.glUseProgram.assert_any_call(0)
|
|
|
|
# Verify uniforms were updated
|
|
mock_gl.glUniform1f.assert_called()
|
|
mock_gl.glUniform2f.assert_called()
|