mirror of
https://github.com/ManimCommunity/manim.git
synced 2026-06-22 10:01:47 +00:00
* Add a script to build and install cairo * Update gui tests for cairo 1.18.0 * update script to set env vars * Make the script run with plain python * Prefer the recently built one in pkg-config * Skip the built if it's windows * CI: build and install latest cairo * CI: only run when cache is missed * Disable compiling tests while building cairo * update poetry lock file * Display the cairo version when running pytest * fixup * tests: skip graphical test when cairo is old * fix the path to find the pkgconfig files on linux * set the LD_LIBRARY_PATH too only then it'll work on linux * fixup * small fixup * Move the script inside `.github/scripts` folder * Make the minimum cairo version a constant * Seperate setting env vars to a sperate step this seem to have broken when cache is hit
49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
# This file is automatically picked by pytest
|
|
# while running tests. So, that each test is
|
|
# run on difference temporary directories and avoiding
|
|
# errors.
|
|
|
|
from __future__ import annotations
|
|
|
|
try:
|
|
# https://github.com/moderngl/moderngl/issues/517
|
|
import readline # required to prevent a segfault on Python 3.10
|
|
except ModuleNotFoundError: # windows
|
|
pass
|
|
|
|
import cairo
|
|
import moderngl
|
|
|
|
# If it is running Doctest the current directory
|
|
# is changed because it also tests the config module
|
|
# itself. If it's a normal test then it uses the
|
|
# tempconfig to change directories.
|
|
import pytest
|
|
from _pytest.doctest import DoctestItem
|
|
|
|
from manim import config, tempconfig
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def temp_media_dir(tmpdir, monkeypatch, request):
|
|
if isinstance(request.node, DoctestItem):
|
|
monkeypatch.chdir(tmpdir)
|
|
yield tmpdir
|
|
else:
|
|
with tempconfig({"media_dir": str(tmpdir)}):
|
|
assert config.media_dir == str(tmpdir)
|
|
yield tmpdir
|
|
|
|
|
|
def pytest_report_header(config):
|
|
ctx = moderngl.create_standalone_context()
|
|
info = ctx.info
|
|
ctx.release()
|
|
return (
|
|
f"\nCairo Version: {cairo.cairo_version()}",
|
|
"\nOpenGL information",
|
|
"------------------",
|
|
f"vendor: {info['GL_VENDOR'].strip()}",
|
|
f"renderer: {info['GL_RENDERER'].strip()}",
|
|
f"version: {info['GL_VERSION'].strip()}\n",
|
|
)
|