Skip to content

Various tests failures on Python 3.12.0rc1 #53

Description

@eclipseo

Environment:

  • Python 3.12.0rc1
  • Fedora Rawhide
  • libmagic 5.45
  • libarchive 3.7.1
  • p7zip 16.02

Summary

FAILED tests/test_archive.py::TestGetExtractorTest::test_get_extractor_qcow2
FAILED tests/test_archive.py::TestRar::test_extract_rar_with_trailing_data - ...
FAILED tests/test_extractcode_cli.py::test_extractcode_command_can_take_an_empty_directory
FAILED tests/test_extractcode_cli.py::test_extractcode_command_does_extract_verbose
FAILED tests/test_extractcode_cli.py::test_extractcode_command_always_shows_something_if_not_using_a_tty_verbose_or_not
FAILED tests/test_extractcode_cli.py::test_extractcode_command_works_with_relative_paths
FAILED tests/test_extractcode_cli.py::test_extractcode_command_works_with_relative_paths_verbose
FAILED tests/test_extractcode_cli.py::test_usage_and_help_return_a_correct_script_name_on_all_platforms
FAILED tests/test_extractcode_cli.py::test_extractcode_command_can_extract_archive_with_unicode_names_verbose
FAILED tests/test_extractcode_cli.py::test_extractcode_command_can_extract_archive_with_unicode_names
FAILED tests/test_extractcode_cli.py::test_extractcode_command_can_extract_shallow
FAILED tests/test_extractcode_cli.py::test_extractcode_command_can_ignore - A...
FAILED tests/test_extractcode_cli.py::test_extractcode_command_does_not_crash_with_replace_originals_and_corrupted_archives
FAILED tests/test_extractcode_cli.py::test_extractcode_command_can_extract_nuget

Details:

=================================== FAILURES ===================================
________________ TestGetExtractorTest.test_get_extractor_qcow2 _________________
self = <test_archive.TestGetExtractorTest testMethod=test_get_extractor_qcow2>
def test_get_extractor_qcow2(self):
test_file = self.extract_test_tar('vmimage/foobar.qcow2.tar.gz')
test_file = str(Path(test_file) / 'foobar.qcow2')
expected = []
self.check_get_extractors(test_file, expected, kinds=extractcode.default_kinds)
expected = [archive.extract_vm_image]
> self.check_get_extractors(test_file, expected, kinds=())
tests/test_archive.py:217: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <test_archive.TestGetExtractorTest testMethod=test_get_extractor_qcow2>
test_file = '/tmp/scancode-tk-tests -uejk8_7m/u6e9wzs8/foobar.qcow2.tar.gz/foobar.qcow2'
expected = [<function extract at 0x7f702e883c40>], kinds = ()
def check_get_extractors(self, test_file, expected, kinds=()):
from extractcode import archive
test_loc = self.get_test_loc(test_file)
if kinds:
extractors = archive.get_extractors(test_loc, kinds)
else:
extractors = archive.get_extractors(test_loc)
fe = fileutils.file_extension(test_loc).lower()
em = ', '.join(e.__module__ + '.' + e.__name__ for e in extractors)
msg = ('%(expected)r == %(extractors)r for %(test_file)s\n'
'with fe:%(fe)r, em:%(em)s' % locals())
> assert expected == extractors, msg
E AssertionError: [<function extract at 0x7f702e883c40>] == [] for /tmp/scancode-tk-tests -uejk8_7m/u6e9wzs8/foobar.qcow2.tar.gz/foobar.qcow2
E with fe:'.qcow2', em:
E assert [<function ex...7f702e883c40>] == []
E Left contains one more item: <function extract at 0x7f702e883c40>
E Use -v to get more diff
tests/extractcode_assert_utils.py:166: AssertionError
_________________ TestRar.test_extract_rar_with_trailing_data __________________
self = <test_archive.TestRar testMethod=test_extract_rar_with_trailing_data>
def test_extract_rar_with_trailing_data(self):
test_file = self.get_test_loc('archive/rar/rar_trailing.rar')
test_dir = self.get_temp_dir()
expected = Exception('Unknown error')
> self.assertRaisesInstance(expected, archive.extract_rar, test_file, test_dir)
tests/test_archive.py:1693: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <test_archive.TestRar testMethod=test_extract_rar_with_trailing_data>
excInstance = Exception('Unknown error')
callableObj = <function extract at 0x7f702e881620>
args = ('/builddir/build/BUILD/extractcode-31.0.0/tests/data/archive/rar/rar_trailing.rar', '/tmp/scancode-tk-tests -uejk8_7m/h4a951m9')
kwargs = {}, excClass = <class 'Exception'>, excName = 'Exception'
def assertRaisesInstance(self, excInstance, callableObj, *args, **kwargs):
"""
This assertion accepts an instance instead of a class for refined
exception testing.
"""
kwargs = kwargs or {}
excClass = excInstance.__class__
try:
callableObj(*args, **kwargs)
except excClass as e:
assert str(e).startswith(str(excInstance))
else:
if hasattr(excClass, '__name__'):
excName = excClass.__name__
else:
excName = str(excClass)
> raise self.failureException('%s not raised' % excName)
E AssertionError: Exception not raised
tests/extractcode_assert_utils.py:184: AssertionError
_____________ test_extractcode_command_can_take_an_empty_directory _____________
def test_extractcode_command_can_take_an_empty_directory():
test_dir = test_env.get_temp_dir()
> result = run_extract([test_dir], expected_rc=0)
tests/test_extractcode_cli.py:64: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['/tmp/scancode-tk-tests -uejk8_7m/fna7ftnv'], expected_rc = 0
cwd = None
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError
________________ test_extractcode_command_does_extract_verbose _________________
def test_extractcode_command_does_extract_verbose():
test_dir = test_env.get_test_loc('cli/extract', copy=True)
> result = run_extract(['--verbose', test_dir], expected_rc=1)
tests/test_extractcode_cli.py:72: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['--verbose', '/tmp/scancode-tk-tests -uejk8_7m/bbuw3oy4/extract']
expected_rc = 1, cwd = None
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError
_ test_extractcode_command_always_shows_something_if_not_using_a_tty_verbose_or_not _
def test_extractcode_command_always_shows_something_if_not_using_a_tty_verbose_or_not():
test_dir = test_env.get_test_loc('cli/extract/some.tar.gz', copy=True)
> result = run_extract(options=['--verbose', test_dir], expected_rc=0)
tests/test_extractcode_cli.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['--verbose', '/tmp/scancode-tk-tests -uejk8_7m/36o7wnm7/some.tar.gz']
expected_rc = 0, cwd = None
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError
______________ test_extractcode_command_works_with_relative_paths ______________
def test_extractcode_command_works_with_relative_paths():
# The setup is complex because we want to have a relative dir to the base
# dir where we run tests from, i.e. the git checkout dir To use relative
# paths, we use our tmp dir at the root of the code tree
from os.path import join
from commoncode import fileutils
import extractcode
import tempfile
import shutil
try:
test_file = test_env.get_test_loc('cli/extract_relative_path/basic.zip')
project_tmp = join(project_root, 'tmp')
fileutils.create_dir(project_tmp)
temp_rel = tempfile.mkdtemp(dir=project_tmp)
assert os.path.exists(temp_rel)
relative_dir = temp_rel.replace(project_root, '').strip('\\/')
shutil.copy(test_file, temp_rel)
test_src_file = join(relative_dir, 'basic.zip')
test_tgt_dir = join(project_root, test_src_file) + extractcode.EXTRACT_SUFFIX
> result = run_extract([test_src_file], expected_rc=0, cwd=project_root)
tests/test_extractcode_cli.py:124: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['tmp/tmpiu9t_zt7/basic.zip'], expected_rc = 0
cwd = '/builddir/build/BUILD/extractcode-31.0.0'
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError
__________ test_extractcode_command_works_with_relative_paths_verbose __________
def test_extractcode_command_works_with_relative_paths_verbose():
# The setup is a tad complex because we want to have a relative dir
# to the base dir where we run tests from, i.e. the git checkout dir
# To use relative paths, we use our tmp dir at the root of the code tree
from os.path import join
from commoncode import fileutils
import tempfile
import shutil
try:
project_tmp = join(project_root, 'tmp')
fileutils.create_dir(project_tmp)
test_src_dir = tempfile.mkdtemp(dir=project_tmp).replace(project_root, '').strip('\\/')
test_file = test_env.get_test_loc('cli/extract_relative_path/basic.zip')
shutil.copy(test_file, test_src_dir)
test_src_file = join(test_src_dir, 'basic.zip')
> result = run_extract(['--verbose', test_src_file] , expected_rc=0)
tests/test_extractcode_cli.py:158: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['--verbose', 'tmp/tmpc_z4ga7z/basic.zip'], expected_rc = 0
cwd = None
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError
______ test_usage_and_help_return_a_correct_script_name_on_all_platforms _______
def test_usage_and_help_return_a_correct_script_name_on_all_platforms():
options = ['--help']
> result = run_extract(options , expected_rc=0)
tests/test_extractcode_cli.py:177: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['--help'], expected_rc = 0, cwd = None
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError
___ test_extractcode_command_can_extract_archive_with_unicode_names_verbose ____
def test_extractcode_command_can_extract_archive_with_unicode_names_verbose():
test_dir = test_env.get_test_loc('cli/unicodearch', copy=True)
> result = run_extract(['--verbose', test_dir] , expected_rc=0)
tests/test_extractcode_cli.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['--verbose', '/tmp/scancode-tk-tests -uejk8_7m/2rcvcl3l/unicodearch']
expected_rc = 0, cwd = None
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError
_______ test_extractcode_command_can_extract_archive_with_unicode_names ________
def test_extractcode_command_can_extract_archive_with_unicode_names():
test_dir = test_env.get_test_loc('cli/unicodearch', copy=True)
> run_extract([test_dir] , expected_rc=0)
tests/test_extractcode_cli.py:213: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['/tmp/scancode-tk-tests -uejk8_7m/3a9hxexv/unicodearch']
expected_rc = 0, cwd = None
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError
_________________ test_extractcode_command_can_extract_shallow _________________
def test_extractcode_command_can_extract_shallow():
test_dir = test_env.get_test_loc('cli/extract_shallow', copy=True)
> run_extract(['--shallow', test_dir] , expected_rc=0)
tests/test_extractcode_cli.py:230: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['--shallow', '/tmp/scancode-tk-tests -uejk8_7m/n1bkdpux/extract_shallow']
expected_rc = 0, cwd = None
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError
_____________________ test_extractcode_command_can_ignore ______________________
def test_extractcode_command_can_ignore():
test_dir = test_env.get_test_loc('cli/extract_ignore', copy=True)
> run_extract(['--ignore', '*.tar', test_dir] , expected_rc=0)
tests/test_extractcode_cli.py:248: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['--ignore', '*.tar', '/tmp/scancode-tk-tests -uejk8_7m/bs_94w2l/extract_ignore']
expected_rc = 0, cwd = None
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError
_ test_extractcode_command_does_not_crash_with_replace_originals_and_corrupted_archives _
def test_extractcode_command_does_not_crash_with_replace_originals_and_corrupted_archives():
test_dir = test_env.get_test_loc('cli/replace-originals', copy=True)
> result = run_extract(['--replace-originals', '--verbose', test_dir] , expected_rc=1)
tests/test_extractcode_cli.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['--replace-originals', '--verbose', '/tmp/scancode-tk-tests -uejk8_7m/ldztqpv3/replace-originals']
expected_rc = 1, cwd = None
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError
__________________ test_extractcode_command_can_extract_nuget __________________
@pytest.mark.skipif(on_windows, reason='FIXME: this test fails on Windows until we have support for long file names.')
def test_extractcode_command_can_extract_nuget():
test_dir = test_env.get_test_loc('cli/extract_nuget', copy=True)
> result = run_extract(['--verbose', test_dir])
tests/test_extractcode_cli.py:283: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ options = ['--verbose', '/tmp/scancode-tk-tests -uejk8_7m/zcx7geku/extract_nuget']
expected_rc = None, cwd = None
def run_extract(options, expected_rc=None, cwd=None):
"""
Run extractcode as a plain subprocess. Return rc, stdout, stderr.
"""
bin_dir = 'Scripts' if on_windows else 'bin'
# note: this assumes that we are using a standard directory layout as set
# with the configure script
cmd_loc = os.path.join(project_root, 'venv', bin_dir, 'extractcode')
> assert os.path.exists(cmd_loc + ('.exe' if on_windows else ''))
E AssertionError: assert False
E + where False = <function exists at 0x7f7030703920>(('/builddir/build/BUILD/extractcode-31.0.0/venv/bin/extractcode' + ''))
E + where <function exists at 0x7f7030703920> = <module 'posixpath' (frozen)>.exists
E + where <module 'posixpath' (frozen)> = os.path
tests/test_extractcode_cli.py:38: AssertionError

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions