Skip to content

Commit d5f3fe4

Browse files
Merge branch 'main' into workflow
2 parents 8b28687 + ae336b3 commit d5f3fe4

File tree

8 files changed

+37
-13
lines changed

8 files changed

+37
-13
lines changed

tests/test_basicio.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,8 @@ def test_MemIo(self):
224224
with self.assertWarns(DeprecationWarning):
225225
self.assertEqual(memoryview(io), self.data + b'+fred+jim')
226226

227+
@unittest.skipIf(sys.version_info >= (3, 14),
228+
'cannot test optimised ref counts')
227229
def test_ref_counts(self):
228230
# MemIo keeps a reference to the data buffer
229231
count = sys.getrefcount(self.data)

tests/test_exif.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,8 @@ def test_pointers(self):
310310
self.assertEqual(datum_pointer, datum)
311311
self.assertEqual(datum_pointer, datum_iter)
312312

313+
@unittest.skipIf(sys.version_info >= (3, 14),
314+
'cannot test optimised ref counts')
313315
def test_ref_counts(self):
314316
self.image.readMetadata()
315317
# exifData keeps a reference to image

tests/test_image.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## python-exiv2 - Python interface to libexiv2
22
## http://github.com/jim-easterbrook/python-exiv2
3-
## Copyright (C) 2023-24 Jim Easterbrook [email protected]
3+
## Copyright (C) 2023-25 Jim Easterbrook [email protected]
44
##
55
## This program is free software: you can redistribute it and/or
66
## modify it under the terms of the GNU General Public License as
@@ -121,17 +121,21 @@ def test_Image(self):
121121
self.check_result(image.iccProfileDefined(), bool, False)
122122
# test data access
123123
image.readMetadata()
124-
self.assertEqual(sys.getrefcount(image), 2)
124+
if sys.version_info < (3, 14):
125+
self.assertEqual(sys.getrefcount(image), 2)
125126
view = image.data()
126-
self.assertEqual(sys.getrefcount(image), 3)
127+
if sys.version_info < (3, 14):
128+
self.assertEqual(sys.getrefcount(image), 3)
127129
self.check_result(view, memoryview, self.image_data)
128130
self.assertEqual(view.readonly, True)
129131
image.writeMetadata()
130-
self.assertEqual(sys.getrefcount(image), 2)
132+
if sys.version_info < (3, 14):
133+
self.assertEqual(sys.getrefcount(image), 2)
131134
with self.assertRaises(ValueError):
132135
view[0]
133136
del view
134-
self.assertEqual(sys.getrefcount(image), 2)
137+
if sys.version_info < (3, 14):
138+
self.assertEqual(sys.getrefcount(image), 2)
135139
# test other methods
136140
image.readMetadata()
137141
self.check_result(image.byteOrder(),
@@ -183,6 +187,8 @@ def test_ImageFactory(self):
183187
exiv2.ImageType, exiv2.ImageType.jpeg)
184188
self.assertIsInstance(factory.open(self.image_path), exiv2.Image)
185189

190+
@unittest.skipIf(sys.version_info >= (3, 14),
191+
'cannot test optimised ref counts')
186192
def test_ref_counts(self):
187193
# opening from data keeps reference to buffer
188194
self.assertEqual(sys.getrefcount(self.image_data), 2)

tests/test_iptc.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,8 @@ def test_IptcDatum(self):
204204
del datum2
205205
self._test_datum(datum)
206206

207+
@unittest.skipIf(sys.version_info >= (3, 14),
208+
'cannot test optimised ref counts')
207209
def test_ref_counts(self):
208210
self.image.readMetadata()
209211
# iptcData keeps a reference to image

tests/test_preview.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,11 @@ def test_PreviewImage(self):
5454
with preview.data() as data:
5555
self.check_result(data, memoryview, copy.data())
5656
self.assertEqual(data[:10], b'\xff\xd8\xff\xe0\x00\x10JFIF')
57-
self.assertEqual(sys.getrefcount(preview), 3)
57+
if sys.version_info < (3, 14):
58+
self.assertEqual(sys.getrefcount(preview), 3)
5859
del data
59-
self.assertEqual(sys.getrefcount(preview), 2)
60+
if sys.version_info < (3, 14):
61+
self.assertEqual(sys.getrefcount(preview), 2)
6062
with self.assertWarns(DeprecationWarning):
6163
self.assertEqual(memoryview(preview), copy.data())
6264
self.check_result(preview.extension(), str, '.jpg')
@@ -116,6 +118,8 @@ def test_PreviewProperties(self):
116118
with self.assertRaises(TypeError):
117119
properties['fred'] = 123
118120

121+
@unittest.skipIf(sys.version_info >= (3, 14),
122+
'cannot test optimised ref counts')
119123
def test_ref_counts(self):
120124
# manager keeps reference to image
121125
self.assertEqual(sys.getrefcount(self.image), 2)

tests/test_types.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,11 @@ def test_DataBuf(self):
8484
with self.assertRaises(ValueError):
8585
view[0]
8686
view = buf.data()
87-
self.assertEqual(sys.getrefcount(buf), 3)
87+
if sys.version_info < (3, 14):
88+
self.assertEqual(sys.getrefcount(buf), 3)
8889
del view
89-
self.assertEqual(sys.getrefcount(buf), 2)
90+
if sys.version_info < (3, 14):
91+
self.assertEqual(sys.getrefcount(buf), 2)
9092

9193
def test_Rational(self):
9294
for type_ in (exiv2.Rational, exiv2.URational):

tests/test_value.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,11 @@ def do_common_string_tests(self, value, data):
131131
view = copy.data()
132132
self.assertIsInstance(view, memoryview)
133133
self.assertEqual(view[0], data[0])
134-
self.assertEqual(sys.getrefcount(copy), 3)
134+
if sys.version_info < (3, 14):
135+
self.assertEqual(sys.getrefcount(copy), 3)
135136
del view
136-
self.assertEqual(sys.getrefcount(copy), 2)
137+
if sys.version_info < (3, 14):
138+
self.assertEqual(sys.getrefcount(copy), 2)
137139

138140
def do_common_xmp_tests(self, value):
139141
with self.assertWarns(DeprecationWarning):
@@ -355,9 +357,11 @@ def check_data(value, data):
355357
self.assertEqual(view, data)
356358
with self.assertRaises(ValueError):
357359
self.assertEqual(view[0], data[0])
358-
self.assertEqual(sys.getrefcount(value), 3)
360+
if sys.version_info < (3, 14):
361+
self.assertEqual(sys.getrefcount(value), 3)
359362
del view
360-
self.assertEqual(sys.getrefcount(value), 2)
363+
if sys.version_info < (3, 14):
364+
self.assertEqual(sys.getrefcount(value), 2)
361365
else:
362366
copy = value.data()
363367
self.assertIsInstance(copy, bytearray)

tests/test_xmp.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,8 @@ def test_pointers(self):
246246
self.assertEqual(datum_pointer, datum)
247247
self.assertEqual(datum_pointer, datum_iter)
248248

249+
@unittest.skipIf(sys.version_info >= (3, 14),
250+
'cannot test optimised ref counts')
249251
def test_ref_counts(self):
250252
self.image.readMetadata()
251253
# xmpData keeps a reference to image

0 commit comments

Comments
 (0)