-
Notifications
You must be signed in to change notification settings - Fork 52
Open
Description
What doesn't work?
=================================== FAILURES ===================================
____________________ TestSDLSurface.test_SDL_GetSetClipRect ____________________
self = <sdl2.test.surface_test.TestSDLSurface object at 0x7fff4f9b2140>
def test_SDL_GetSetClipRect(self):
rectlist = ((rect.SDL_Rect(0, 0, 0, 0), SDL_FALSE, True),
(rect.SDL_Rect(2, 2, 0, 0), SDL_FALSE, False),
(rect.SDL_Rect(2, 2, 5, 1), SDL_TRUE, True),
(rect.SDL_Rect(6, 5, 10, 3), SDL_TRUE, False),
(rect.SDL_Rect(0, 0, 10, 10), SDL_TRUE, True),
(rect.SDL_Rect(0, 0, -10, 10), SDL_FALSE, False),
(rect.SDL_Rect(0, 0, -10, -10), SDL_FALSE, False),
(rect.SDL_Rect(-10, -10, 10, 10), SDL_FALSE, False),
(rect.SDL_Rect(10, -10, 10, 10), SDL_FALSE, False),
(rect.SDL_Rect(10, 10, 10, 10), SDL_TRUE, False)
)
clip = rect.SDL_Rect()
sf = sdl2.SDL_CreateRGBSurface(0, 15, 15, 32, 0, 0, 0, 0)
assert isinstance(sf.contents, sdl2.SDL_Surface)
sdl2.SDL_GetClipRect(sf, byref(clip))
assert clip == rect.SDL_Rect(0, 0, 15, 15)
for r, clipsetval, cmpval in rectlist:
retval = sdl2.SDL_SetClipRect(sf, r)
sdl2.SDL_GetClipRect(sf, byref(clip))
err = "Could not set clip rect %s" % r
assert retval == clipsetval, "retval: " + err
> assert (clip == r) == cmpval, "clip: " + err
E AssertionError: clip: Could not set clip rect SDL_Rect(x=2, y=2, w=0, h=0)
E assert (SDL_Rect(x=2, y=2, w=0, h=0) == SDL_Rect(x=2, y=2, w=0, h=0)
E
E Use -v to get more diff) == False
sdl2/test/surface_test.py:493: AssertionError
=========================== short test summary info ============================
FAILED sdl2/test/surface_test.py::TestSDLSurface::test_SDL_GetSetClipRect - AssertionError: clip: Could not set clip rect SDL_Rect(x=2, y=2, w=0, h=0)
===== 1 failed, 773 passed, 324 skipped, 1 deselected, 3 xpassed in 11.64s =====
How To Reproduce
Build using nix
{
stdenv,
lib,
replaceVars,
fetchFromGitHub,
buildPythonPackage,
setuptools,
# native dependencies
SDL2,
SDL2_ttf,
SDL2_image,
SDL2_gfx,
SDL2_mixer,
# tests
numpy,
pillow,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "pysdl2";
version = "0.9.17-unstable-2025-04-03";
pyproject = true;
pythonImportsCheck = [ "sdl2" ];
src = fetchFromGitHub {
owner = "py-sdl";
repo = "py-sdl2";
rev = "6414ee1c5f4a6eb91b71f5f9e35d469eee395b9f";
hash = "sha256-E6Jpuin4bqDkvFTaZTsTNkNQJd2e5fuTf2oLsQ71uQ0=";
};
patches = [
(replaceVars ./PySDL2-dll.patch (
(builtins.mapAttrs
(_: pkg: "${pkg}/lib/lib${pkg.pname}${stdenv.hostPlatform.extensions.sharedLibrary}")
{
inherit
SDL2_ttf
SDL2_image
SDL2_gfx
SDL2_mixer
;
}
)
// {
# sdl2-compat has the pname sdl2-compat,
# but the shared object is named libSDL2.so for compatibility reasons.
# This requires making the shared object path for SDL2 not depend on pname.
SDL2 = (pkg: "${pkg}/lib/libSDL2${stdenv.hostPlatform.extensions.sharedLibrary}") SDL2;
}
))
];
build-system = [ setuptools ];
buildInputs = [
SDL2
SDL2_ttf
SDL2_image
SDL2_gfx
SDL2_mixer
];
env = {
SDL_VIDEODRIVER = "dummy";
SDL_AUDIODRIVER = "dummy";
SDL_RENDER_DRIVER = "software";
PYTHONFAULTHANDLER = "1";
};
nativeCheckInputs = [
numpy
pillow
pytestCheckHook
];
disabledTests = [
# GetPrefPath for OrgName/AppName is None
"test_SDL_GetPrefPath"
];
meta = {
changelog = "https://github.com/py-sdl/py-sdl2/compare/0.9.17..${src.rev}";
description = "Wrapper around the SDL2 library and as such similar to the discontinued PySDL project";
homepage = "https://github.com/py-sdl/py-sdl2";
license = lib.licenses.publicDomain;
maintainers = with lib.maintainers; [ pmiddend ];
};
}Platform (if relevant):
- OS:
Linux 6.18.0-rc3 #1-NixOS SMP PREEMPT_DYNAMIC Tue Jan 1 00:00:00 UTC 1980 x86_64 GNU/Linux - Python Version:
Python 3.13.9 - SDL2 Version:
sdl2-compat-2.32.58 - Using pysdl2-dll: [Yes / No]
Metadata
Metadata
Assignees
Labels
No labels