File: syswm_test.py

package info (click to toggle)
pysdl2 0.9.17%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,328 kB
  • sloc: python: 24,685; makefile: 36; sh: 8
file content (45 lines) | stat: -rw-r--r-- 1,555 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import os
import sys
import pytest
import ctypes
import sdl2
from sdl2.stdinc import SDL_TRUE
from sdl2 import video, version, SDL_GetError
from .conftest import _check_error_msg

# Check if using dummy video driver
DRIVER_DUMMY = os.getenv("SDL_VIDEODRIVER", "") == "dummy"


@pytest.mark.skipif(DRIVER_DUMMY, reason="Doesn't work with dummy driver")
def test_SDL_GetWindowWMInfo(with_sdl):
    unix_wms = [
        sdl2.SDL_SYSWM_X11, sdl2.SDL_SYSWM_DIRECTFB,
        sdl2.SDL_SYSWM_WAYLAND, sdl2.SDL_SYSWM_KMSDRM, 
    ]
    platform_wms = {
        "windows": [sdl2.SDL_SYSWM_WINDOWS],
        "darwin": [sdl2.SDL_SYSWM_COCOA],
        "unixlike": unix_wms,
        "os2": [sdl2.SDL_SYSWM_OS2],
    }
    # Create a window and retrieve the current window manager info
    window = video.SDL_CreateWindow(
        b"Test", 10, 10, 10, 10, video.SDL_WINDOW_HIDDEN
    )
    assert window, _check_error_msg()
    assert isinstance(window.contents, video.SDL_Window)
    sdl2.SDL_ClearError()
    wminfo = sdl2.SDL_SysWMinfo()
    version.SDL_VERSION(wminfo.version)
    ret = sdl2.SDL_GetWindowWMInfo(window, ctypes.byref(wminfo))
    video.SDL_DestroyWindow(window)
    assert ret == SDL_TRUE, _check_error_msg()
    # Test window manager types for different platforms
    platform = sys.platform
    if platform in ("win32", "cygwin", "msys"):
        platform = "windows"
    elif "linux" in platform or "bsd" in platform:
        platform = "unixlike"
    if platform in platform_wms.keys():
        assert wminfo.subsystem in platform_wms[platform]