Skip to content

Commit cb5f1be

Browse files
henryiiidnicolodi
authored andcommitted
TST: stricter warning checks
Signed-off-by: Henry Schreiner <[email protected]>
1 parent 2425e4f commit cb5f1be

File tree

5 files changed

+44
-25
lines changed

5 files changed

+44
-25
lines changed

pyproject.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,7 @@ addopts = ['-ra', '--strict-markers', '--strict-config']
8383
log_cli_level = 'info'
8484
norecursedirs = 'tests/packages/*'
8585
testpaths = ['tests']
86+
xfail_strict = true
87+
filterwarnings = [
88+
'error',
89+
]

tests/conftest.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import subprocess
1010
import sys
1111
import tempfile
12+
import warnings
1213

1314
from venv import EnvBuilder
1415

@@ -71,7 +72,12 @@ def tmp_dir_session(tmpdir_factory):
7172
class VEnv(EnvBuilder):
7273
def __init__(self, env_dir):
7374
super().__init__(with_pip=True)
74-
self.create(env_dir)
75+
# This warning is mistakenly generated by CPython 3.11.0
76+
# https://github.com/python/cpython/pull/98743
77+
with warnings.catch_warnings():
78+
if sys.version_info[:3] == (3, 11, 0):
79+
warnings.filterwarnings('ignore', 'check_home argument is deprecated and ignored.', DeprecationWarning)
80+
self.create(env_dir)
7581

7682
def ensure_directories(self, env_dir):
7783
context = super().ensure_directories(env_dir)

tests/test_metadata.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,21 @@
55

66

77
def test_no_pep621(sdist_library):
8-
sdist = tarfile.open(sdist_library, 'r:gz')
8+
with tarfile.open(sdist_library, 'r:gz') as sdist:
9+
sdist_pkg_info = sdist.extractfile('library-1.0.0/PKG-INFO').read().decode()
910

10-
assert sdist.extractfile('library-1.0.0/PKG-INFO').read().decode() == textwrap.dedent('''
11+
assert sdist_pkg_info == textwrap.dedent('''
1112
Metadata-Version: 2.1
1213
Name: library
1314
Version: 1.0.0
1415
''').strip()
1516

1617

1718
def test_pep621(sdist_full_metadata):
18-
sdist = tarfile.open(sdist_full_metadata, 'r:gz')
19+
with tarfile.open(sdist_full_metadata, 'r:gz') as sdist:
20+
sdist_pkg_info = sdist.extractfile('full_metadata-1.2.3/PKG-INFO').read().decode()
1921

20-
assert sdist.extractfile('full_metadata-1.2.3/PKG-INFO').read().decode() == textwrap.dedent('''\
22+
assert sdist_pkg_info == textwrap.dedent('''\
2123
Metadata-Version: 2.1
2224
Name: full-metadata
2325
Version: 1.2.3
@@ -50,9 +52,10 @@ def test_pep621(sdist_full_metadata):
5052

5153

5254
def test_dynamic_version(sdist_dynamic_version):
53-
sdist = tarfile.open(sdist_dynamic_version, 'r:gz')
55+
with tarfile.open(sdist_dynamic_version, 'r:gz') as sdist:
56+
sdist_pkg_info = sdist.extractfile('dynamic_version-1.0.0/PKG-INFO').read().decode().strip()
5457

55-
assert sdist.extractfile('dynamic_version-1.0.0/PKG-INFO').read().decode().strip() == textwrap.dedent('''
58+
assert sdist_pkg_info == textwrap.dedent('''
5659
Metadata-Version: 2.1
5760
Name: dynamic-version
5861
Version: 1.0.0

tests/test_sdist.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@
1414

1515

1616
def test_contents(sdist_library):
17-
sdist = tarfile.open(sdist_library, 'r:gz')
17+
with tarfile.open(sdist_library, 'r:gz') as sdist:
18+
names = set(sdist.getnames())
1819

19-
assert set(sdist.getnames()) == {
20+
assert names == {
2021
'library-1.0.0/example.c',
2122
'library-1.0.0/examplelib.c',
2223
'library-1.0.0/examplelib.h',
@@ -27,9 +28,10 @@ def test_contents(sdist_library):
2728

2829

2930
def test_contents_subdirs(sdist_subdirs):
30-
sdist = tarfile.open(sdist_subdirs, 'r:gz')
31+
with tarfile.open(sdist_subdirs, 'r:gz') as sdist:
32+
names = set(sdist.getnames())
3133

32-
assert set(sdist.getnames()) == {
34+
assert names == {
3335
'subdirs-1.0.0/PKG-INFO',
3436
'subdirs-1.0.0/meson.build',
3537
'subdirs-1.0.0/pyproject.toml',
@@ -60,22 +62,21 @@ def bar():
6062
f.write(old_data)
6163
os.unlink('crap')
6264

63-
sdist = tarfile.open(tmpdir / sdist_path, 'r:gz')
65+
with tarfile.open(tmpdir / sdist_path, 'r:gz') as sdist:
66+
names = set(sdist.getnames())
67+
read_data = sdist.extractfile('pure-1.0.0/pure.py').read().replace(b'\r\n', b'\n')
6468

65-
assert set(sdist.getnames()) == {
69+
assert names == {
6670
'pure-1.0.0/PKG-INFO',
6771
'pure-1.0.0/meson.build',
6872
'pure-1.0.0/pure.py',
6973
'pure-1.0.0/pyproject.toml',
7074
}
71-
read_data = sdist.extractfile('pure-1.0.0/pure.py').read().replace(b'\r\n', b'\n')
7275
assert read_data == new_data.encode()
7376

7477

7578
@pytest.mark.skipif(sys.platform in {'win32', 'cygwin'}, reason='Platform does not support executable bit')
7679
def test_executable_bit(sdist_executable_bit):
77-
sdist = tarfile.open(sdist_executable_bit, 'r:gz')
78-
7980
expected = {
8081
'executable_bit-1.0.0/PKG-INFO': False,
8182
'executable_bit-1.0.0/example-script.py': True,
@@ -84,12 +85,13 @@ def test_executable_bit(sdist_executable_bit):
8485
'executable_bit-1.0.0/meson.build': False,
8586
'executable_bit-1.0.0/pyproject.toml': False,
8687
}
87-
for member in sdist.getmembers():
88-
assert bool(member.mode & stat.S_IXUSR) == expected[member.name]
88+
89+
with tarfile.open(sdist_executable_bit, 'r:gz') as sdist:
90+
for member in sdist.getmembers():
91+
assert bool(member.mode & stat.S_IXUSR) == expected[member.name]
8992

9093

9194
def test_generated_files(sdist_generated_files):
92-
sdist = tarfile.open(sdist_generated_files, 'r:gz')
9395
expected = {
9496
'executable_bit-1.0.0/PKG-INFO',
9597
'executable_bit-1.0.0/example-script.py',
@@ -100,4 +102,5 @@ def test_generated_files(sdist_generated_files):
100102
'executable_bit-1.0.0/_version_meson.py',
101103
'executable_bit-1.0.0/generate_version.py',
102104
}
103-
assert set(tar.name for tar in sdist.getmembers()) == expected
105+
with tarfile.open(sdist_generated_files, 'r:gz') as sdist:
106+
assert set(tar.name for tar in sdist.getmembers()) == expected

tests/test_wheelfile.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import contextlib
12
import time
23

34
import wheel.wheelfile
@@ -8,16 +9,18 @@
89
def test_basic(tmp_path):
910
path = tmp_path / 'test-1.0-py3-any-none.whl'
1011
bar = tmp_path / 'bar'
11-
open(bar, 'wb').write(b'bar')
12+
bar.write_bytes(b'bar')
1213
with mesonpy._wheelfile.WheelFile(path, 'w') as w:
1314
assert w.name == 'test'
1415
assert w.version == '1.0'
1516
w.writestr('foo', b'test')
1617
w.write(bar, 'bar')
17-
with wheel.wheelfile.WheelFile(path, 'r') as w:
18+
with contextlib.closing(wheel.wheelfile.WheelFile(path, 'r')) as w:
1819
assert set(w.namelist()) == {'foo', 'bar', 'test-1.0.dist-info/RECORD'}
19-
w.open('foo').read() == b'test'
20-
w.open('bar').read() == b'bar'
20+
with w.open('foo') as foo:
21+
assert foo.read() == b'test'
22+
with w.open('bar') as bar:
23+
assert bar.read() == b'bar'
2124

2225

2326
def test_source_date_epoch(tmp_path, monkeypatch):
@@ -27,7 +30,7 @@ def test_source_date_epoch(tmp_path, monkeypatch):
2730
assert epoch % 2 == 0
2831
monkeypatch.setenv('SOURCE_DATE_EPOCH', str(epoch))
2932
bar = tmp_path / 'bar'
30-
open(bar, 'wb').write(b'bar')
33+
bar.write_bytes(b'bar')
3134
with mesonpy._wheelfile.WheelFile(path, 'w') as w:
3235
w.writestr('foo', b'test')
3336
w.write(bar, 'bar')

0 commit comments

Comments
 (0)