Skip to content

Commit f2188f5

Browse files
Fix a number of test failures
1 parent 01674fa commit f2188f5

File tree

14 files changed

+79
-21
lines changed

14 files changed

+79
-21
lines changed

docs/notes/framework-wrappers.rst

+12
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,12 @@ The framework name links to API notes for that framework, the python packages li
5656
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
5757
| _Translation_SwiftUI | - | Swift only API |
5858
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
59+
| _WorkoutKit_SwiftUI | - | Swift only API |
60+
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
5961
| :doc:`dispatch </apinotes/libdispatch>` | `pyobjc-framework-libdispatch`_ | |
6062
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
63+
| AccessorySetupKit | - | No public API. |
64+
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
6165
| :doc:`Accessibility </apinotes/Accessibility>` | `pyobjc-framework-Accessibility`_ | |
6266
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
6367
| Accelerate | - | Will not be wrapped. |
@@ -156,6 +160,8 @@ The framework name links to API notes for that framework, the python packages li
156160
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
157161
| Combine | - | Swift only API |
158162
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
163+
| ContactProvider | - | No public API |
164+
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
159165
| :doc:`Contacts </apinotes/Contacts>` ` | `pyobjc-framework-Contacts`_ | |
160166
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
161167
| :doc:`ContactsUI </apinotes/ContactsUI>` | `pyobjc-framework-ContactsUI`_ | |
@@ -254,6 +260,8 @@ The framework name links to API notes for that framework, the python packages li
254260
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
255261
| :doc:`DeviceCheck </apinotes/DeviceCheck>` | `pyobjc-framework-DeviceCheck`_ | |
256262
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
263+
| DeviceDiscoveryExtension | - | No public API. |
264+
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
257265
| DirectoryService | - | Will not be wrapped, |
258266
| | | Deprecated framework |
259267
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
@@ -377,6 +385,8 @@ The framework name links to API notes for that framework, the python packages li
377385
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
378386
| IOUSBHost | - | Will not be wrapped. |
379387
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
388+
| ImagePlayground | - | No public API. |
389+
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
380390
| :doc:`iTunesLibrary </apinotes/iTunesLibrary>` | `pyobjc-framework-iTunesLibrary`_ | |
381391
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
382392
| :doc:`JavaScriptCore </apinotes/JavaScriptCore>` | `pyobjc-framework-WebKit`_ | |
@@ -681,6 +691,8 @@ The framework name links to API notes for that framework, the python packages li
681691
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
682692
| WeatherKit | - | Swift only framework. |
683693
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
694+
| WorkoutKit | - | Swift only framework. |
695+
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
684696
| :doc:`xpc </apinotes/xpc>` | `pyobjc-framework-libxpc`_ | |
685697
+--------------------------------------------------------------------------------------+------------------------------------------------------+-----------------------------------------+
686698

pyobjc-core/Modules/objc/class-list.m

+4
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,12 @@
9393
* versions should build on the latest one (and preferably
9494
* use the "official" binary wheels).
9595
*/
96+
#if 0
9697
if (@available(macOS 10.15, *)) {
9798
} else {
99+
#else
100+
{
101+
#endif
98102
/* A numbef of private(-ish) classes that cause
99103
* crashes when constructed here while running
100104
* on macOS 10.14

pyobjc-core/setup.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import sys
88
import subprocess
99
import warnings
10-
from setuptools import Extension, setup
11-
from setuptools.command import build_ext, build_py, egg_info, install_lib, test
10+
from setuptools import Extension, setup, Command
11+
from setuptools.command import build_ext, build_py, egg_info, install_lib
1212
from distutils import log
1313
from distutils.errors import DistutilsError, DistutilsPlatformError, DistutilsSetupError
1414
from distutils.sysconfig import get_config_var as _get_config_var
@@ -213,18 +213,14 @@ def build_packages(self):
213213
self.packages = p
214214

215215

216-
class oc_test(test.test):
216+
class oc_test(Command):
217217
description = "run test suite"
218-
user_options = test.test.user_options + [
219-
("verbosity=", None, "print what tests are run")
220-
]
218+
user_options = [("verbosity=", None, "print what tests are run")]
221219

222220
def initialize_options(self):
223-
test.test.initialize_options(self)
224221
self.verbosity = "1"
225222

226223
def finalize_options(self):
227-
test.test.finalize_options(self)
228224
if isinstance(self.verbosity, str):
229225
self.verbosity = int(self.verbosity)
230226

pyobjc-framework-Cocoa/PyObjCTest/test_cfrunloop.py

+8
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,10 @@ def perform(info):
291291
),
292292
"Crash on 10.13, 10.14??",
293293
)
294+
@skipUnless(
295+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
296+
"Crash on macOS 15",
297+
)
294298
@min_os_level("10.6")
295299
def testFunctions10_6(self):
296300
self.assertArgIsBlock(CoreFoundation.CFRunLoopPerformBlock, 2, b"v")
@@ -315,6 +319,10 @@ def doit():
315319
),
316320
"Crash on 10.13, 10.14??",
317321
)
322+
@skipUnless(
323+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
324+
"Crash on macOS 15",
325+
)
318326
@min_os_level("10.7")
319327
def testFunctions10_7(self):
320328
self.assertArgIsBOOL(CoreFoundation.CFRunLoopObserverCreateWithHandler, 2)

pyobjc-framework-Cocoa/PyObjCTest/test_cfstream.py

+8
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,10 @@ def testSockets(self):
427427
),
428428
"Crash on 10.13, 10.14??",
429429
)
430+
@skipUnless(
431+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
432+
"Crash on macOS 15",
433+
)
430434
def testReadSocketASync(self):
431435
rl = CoreFoundation.CFRunLoopGetCurrent()
432436

@@ -492,6 +496,10 @@ def callback(stream, kind, info):
492496
),
493497
"Crash on 10.13, 10.14??",
494498
)
499+
@skipUnless(
500+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
501+
"Crash on macOS 15",
502+
)
495503
def testWriteSocketAsync(self):
496504
rl = CoreFoundation.CFRunLoopGetCurrent()
497505

pyobjc-framework-Cocoa/PyObjCTest/test_nsaccessibility.py

+4
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,10 @@ def testConstants10_10(self):
147147
),
148148
"Crash on 10.13, 10.14??",
149149
)
150+
@skipUnless(
151+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
152+
"Crash on macOS 15",
153+
)
150154
def testFunction(self):
151155
v = AppKit.NSAccessibilityRoleDescription(
152156
AppKit.NSAccessibilityButtonRole, None

pyobjc-framework-Cocoa/PyObjCTest/test_nsapplication.py

+4
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,10 @@ def testNSApp(self):
245245
),
246246
"Crash on 10.13, 10.14??",
247247
)
248+
@skipUnless(
249+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
250+
"Crash on macOS 15",
251+
)
248252
def testNSModalSession(self):
249253
self.assertIsOpaquePointer(AppKit.NSModalSession)
250254

pyobjc-framework-Cocoa/PyObjCTest/test_nscell.py

+3-9
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ def test_enum_types(self):
2424
self.assertIsEnumType(AppKit.NSImageScaling)
2525

2626
@skipUnless(
27-
not (
28-
os_level_key("10.13") <= os_level_key(os_release()) < os_level_key("10.15")
29-
),
27+
not (os_level_key("10.13") <= os_level_key(os_release())),
3028
"doesn't work on 10.13, 10.14",
3129
)
3230
def testUnicode(self):
@@ -36,9 +34,7 @@ def testUnicode(self):
3634
self.assertEqual(cell.stringValue(), u)
3735

3836
@skipUnless(
39-
not (
40-
os_level_key("10.13") <= os_level_key(os_release()) < os_level_key("10.15")
41-
),
37+
not (os_level_key("10.13") <= os_level_key(os_release())),
4238
"doesn't work on 10.13, 10.14",
4339
)
4440
def testInt(self):
@@ -48,9 +44,7 @@ def testInt(self):
4844
self.assertEqual(cell.intValue(), i)
4945

5046
@skipUnless(
51-
not (
52-
os_level_key("10.13") <= os_level_key(os_release()) < os_level_key("10.15")
53-
),
47+
not (os_level_key("10.13") <= os_level_key(os_release())),
5448
"doesn't work on 10.13, 10.14",
5549
)
5650
def testFloat(self):

pyobjc-framework-Cocoa/PyObjCTest/test_nsfont.py

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ def matrixEquals(self, value1, value2):
2525
),
2626
"Crash on 10.13, 10.14??",
2727
)
28+
@skipUnless(
29+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
30+
"Crash on macOS 15",
31+
)
2832
def testMatrixMethods(self):
2933
o = AppKit.NSFont.boldSystemFontOfSize_(10)
3034
m = o.matrix()

pyobjc-framework-Cocoa/PyObjCTest/test_nsopenpanel.py

+8
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ class TestOpenPanel(TestCase):
1616
),
1717
"Crash on 10.13, 10.14??",
1818
)
19+
@skipUnless(
20+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
21+
"Crash on macOS 15",
22+
)
1923
def testOpenPanelSignature(self):
2024
o = AppKit.NSOpenPanel.openPanel()
2125
sig = (
@@ -69,6 +73,10 @@ def testMethods10_10(self):
6973
),
7074
"Crash on 10.13, 10.14??",
7175
)
76+
@skipUnless(
77+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
78+
"Crash on macOS 15",
79+
)
7280
def test_issue_272(self):
7381
panel = AppKit.NSOpenPanel.openPanel()
7482
panel.setAllowedFileTypes_([".html", ".txt"])

pyobjc-framework-Cocoa/PyObjCTest/test_nspanel.py

+4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ class TestNSPanel(TestCase):
1616
),
1717
"Crash on 10.13, 10.14??",
1818
)
19+
@skipUnless(
20+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
21+
"Crash on macOS 15",
22+
)
1923
def testFunctions(self):
2024
self.assertArgIsPrintf(AppKit.NSRunAlertPanel, 1)
2125
self.assertArgIsPrintf(AppKit.NSRunInformationalAlertPanel, 1)

pyobjc-framework-Cocoa/PyObjCTest/test_nssavepanel.py

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
import AppKit
2-
from PyObjCTools.TestSupport import TestCase, min_os_level, min_sdk_level
2+
from PyObjCTools.TestSupport import (
3+
TestCase,
4+
min_os_level,
5+
min_sdk_level,
6+
skipUnless,
7+
os_level_key,
8+
os_release,
9+
)
310
import objc
411

512

@@ -107,6 +114,10 @@ def testMethods10_9(self):
107114
self.assertResultIsBOOL(AppKit.NSSavePanel.showsTagField)
108115

109116
@min_os_level("10.15")
117+
@skipUnless(
118+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
119+
"Crash on macOS 15",
120+
)
110121
def test_issue282(self):
111122
panel = AppKit.NSSavePanel.savePanel()
112123
self.assertIsInstance(panel, AppKit.NSSavePanel)

pyobjc-framework-Cocoa/PyObjCTest/test_nstimer.py

+4
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ def _testHelp(self):
4949
),
5050
"Crash on 10.13, 10.14??",
5151
)
52+
@skipUnless(
53+
not (os_level_key("15.0") <= os_level_key(os_release()) < os_level_key("16.0")),
54+
"Crash on macOS 15",
55+
)
5256
def testPythonLeakage(self):
5357
# Ignore first run, this has some side-effects that would
5458
# taint the result.

pyobjc-framework-CoreAudio/Modules/_CoreAudio.m

-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
#ifndef PyObjC_GIL_DISABLED
2-
#define Py_LIMITED_API 0x03060000
3-
#endif
41
#define PY_SSIZE_T_CLEAN
52
#include "Python.h"
63
#include "structmember.h" /* Why is this needed */

0 commit comments

Comments
 (0)