Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 714856

Summary: dev-python/pytest-mock-1.11.2 fails almost all tests
Product: Gentoo Linux Reporter: Paolo Pedroni <paolo.pedroni>
Component: Current packagesAssignee: Zac Medico <zmedico>
Status: RESOLVED FIXED    
Severity: normal CC: alexey+gentoo, jstein, mgorny, python, renata.nagtalon, sam
Priority: Normal Keywords: TESTFAILURE
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: pytest-mock-1.11.2:20200326-105948.log.gz
build.log (ppc)
pytest-mock-1.11.2.ebuild

Description Paolo Pedroni 2020-03-26 14:05:46 UTC
Created attachment 626116 [details]
pytest-mock-1.11.2:20200326-105948.log.gz

>>> Test phase: dev-python/pytest-mock-1.11.2
 * python3_7: running distutils-r1_run_phase python_test
======================================================= test session starts ========================================================
platform linux -- Python 3.7.7, pytest-4.6.9, py-1.8.0, pluggy-0.13.1 -- /usr/bin/python3.7
cachedir: .pytest_cache
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/var/tmp/portage/dev-python/pytest-mock-1.11.2/work/pytest-m
ock-1.11.2/.hypothesis/examples')
rootdir: /var/tmp/portage/dev-python/pytest-mock-1.11.2/work/pytest-mock-1.11.2, inifile: tox.ini
plugins: forked-1.1.3, shutil-1.2.11, virtualenv-1.2.11, xdist-1.28.0, hypothesis-4.57.1, flaky-3.6.1, xprocess-0.12.1, timeout-1.3.
3, betamax-0.8.0, localserver-0.3.7, backports.unittest-mock-1.5
collecting ... collected 44 items

tests/test_pytest_mock.py::test_mock_patches[mock_using_patch_object] ERROR                                                  [  2%]
tests/test_pytest_mock.py::test_mock_patches[mock_using_patch] ERROR                                                         [  4%]
tests/test_pytest_mock.py::test_mock_patches[mock_using_patch_multiple] ERROR                                                [  6%]
tests/test_pytest_mock.py::test_mock_patch_dict ERROR                                                                        [  9%]
tests/test_pytest_mock.py::test_mock_patch_dict_resetall ERROR                                                               [ 11%]
tests/test_pytest_mock.py::test_deprecated_mock FAILED                                                                       [ 13%]
tests/test_pytest_mock.py::test_mocker_aliases[ANY] FAILED                                                                   [ 15%]
tests/test_pytest_mock.py::test_mocker_aliases[call] FAILED                                                                  [ 18%]
tests/test_pytest_mock.py::test_mocker_aliases[create_autospec] FAILED                                                       [ 20%]
tests/test_pytest_mock.py::test_mocker_aliases[MagicMock] FAILED                                                             [ 22%]
tests/test_pytest_mock.py::test_mocker_aliases[Mock] FAILED                                                                  [ 25%]
tests/test_pytest_mock.py::test_mocker_aliases[mock_open] FAILED                                                             [ 27%]
tests/test_pytest_mock.py::test_mocker_aliases[NonCallableMock] FAILED                                                       [ 29%]
tests/test_pytest_mock.py::test_mocker_aliases[PropertyMock] FAILED                                                          [ 31%]
tests/test_pytest_mock.py::test_mocker_aliases[sentinel] FAILED                                                              [ 34%]
tests/test_pytest_mock.py::test_mocker_resetall ERROR                                                                        [ 36%]
tests/test_pytest_mock.py::TestMockerStub::test_call ERROR                                                                   [ 38%]
tests/test_pytest_mock.py::TestMockerStub::test_repr_with_no_name ERROR                                                      [ 40%]
tests/test_pytest_mock.py::TestMockerStub::test_repr_with_name ERROR                                                         [ 43%]
tests/test_pytest_mock.py::test_instance_method_spy ERROR                                                                    [ 45%]
tests/test_pytest_mock.py::test_instance_method_by_class_spy ERROR                                                           [ 47%]
tests/test_pytest_mock.py::test_instance_method_by_subclass_spy ERROR                                                        [ 50%]
tests/test_pytest_mock.py::test_class_method_spy ERROR                                                                       [ 52%]
tests/test_pytest_mock.py::test_class_method_subclass_spy ERROR                                                              [ 54%]
tests/test_pytest_mock.py::test_class_method_with_metaclass_spy ERROR                                                        [ 56%]
tests/test_pytest_mock.py::test_static_method_spy ERROR                                                                      [ 59%]
tests/test_pytest_mock.py::test_static_method_subclass_spy ERROR                                                             [ 61%]
tests/test_pytest_mock.py::test_callable_like_spy ERROR                                                                      [ 63%]
tests/test_pytest_mock.py::test_assert_not_called_wrapper ERROR                                                              [ 65%]
tests/test_pytest_mock.py::test_assert_called_with_wrapper ERROR                                                             [ 68%]
tests/test_pytest_mock.py::test_assert_called_once_with_wrapper ERROR                                                        [ 70%]
tests/test_pytest_mock.py::test_assert_called_once_wrapper ERROR                                                             [ 72%]
tests/test_pytest_mock.py::test_assert_called_wrapper ERROR                                                                  [ 75%]
tests/test_pytest_mock.py::test_assert_any_call_wrapper ERROR                                                                [ 77%]
tests/test_pytest_mock.py::test_assert_has_calls ERROR                                                                       [ 79%]
tests/test_pytest_mock.py::test_monkeypatch_ini ERROR                                                                        [ 81%]
tests/test_pytest_mock.py::test_parse_ini_boolean PASSED                                                                     [ 84%]
tests/test_pytest_mock.py::test_patched_method_parameter_name ERROR                                                          [ 86%]
tests/test_pytest_mock.py::test_monkeypatch_native FAILED                                                                    [ 88%]
tests/test_pytest_mock.py::test_monkeypatch_no_terminal PASSED                                                               [ 90%]
tests/test_pytest_mock.py::test_missing_introspection PASSED                                                                 [ 93%]
tests/test_pytest_mock.py::test_assert_called_with_unicode_arguments ERROR                                                   [ 95%]
tests/test_pytest_mock.py::test_plain_stopall FAILED                                                                         [ 97%]
tests/test_pytest_mock.py::test_abort_context_manager ERROR                                                                  [100%]
[...]
==================================== 12 failed, 3 passed, 2 warnings, 29 error in 2.63 seconds =====================================
 * ERROR: dev-python/pytest-mock-1.11.2::gentoo failed (test phase):
 *   Tests fail with python3.7

# emerge --info =dev-python/pytest-mock-1.11.2
Portage 2.3.89 (python 3.7.7-final-0, default/linux/amd64/17.1/desktop/plasma/systemd, gcc-9.2.0, glibc-2.29-r7, 5.5.8-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-5.5.8-gentoo-x86_64-Intel-R-_Core-TM-_i5-8400_CPU_@_2.80GHz-with-gentoo-2.6
KiB Mem:    16057468 total,   7414044 free
KiB Swap:   16777212 total,  16723196 free
Timestamp of repository gentoo: Thu, 26 Mar 2020 08:00:01 +0000
Head commit of repository gentoo: 863006801a7c97dba541b52ba96e1d1c075c4c7a
sh dash 0.5.9.1-r3
ld GNU gold (Gentoo 2.33.1 p2 2.33.1) 1.16
ccache version 3.7.7 [disabled]
app-shells/bash:          4.4_p23-r1::gentoo
dev-java/java-config:     2.2.0-r4::gentoo
dev-lang/perl:            5.30.1::gentoo
dev-lang/python:          2.7.17-r1::gentoo, 3.7.7::gentoo
dev-util/ccache:          3.7.7-r1::gentoo
dev-util/cmake:           3.16.5::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/sandbox:         2.13::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r4::gentoo
sys-devel/automake:       1.16.1-r1::gentoo
sys-devel/binutils:       2.33.1-r1::gentoo
sys-devel/gcc:            9.2.0-r2::gentoo
sys-devel/gcc-config:     2.2.1::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 4.19::gentoo (virtual/os-headers)
sys-libs/glibc:           2.29-r7::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts: 
    sync-rsync-verify-max-age: 24

x-portage
    location: /usr/local/portage
    masters: gentoo
    priority: 0

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -frecord-gcc-switches -march=skylake -mabm -flto=6"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe -frecord-gcc-switches -march=skylake -mabm -flto=6"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going y --with-bdeps y"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe -frecord-gcc-switches -march=skylake -mabm -flto=6"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs cgroup compress-build-logs config-protect-if-modified distlocks ebuild-locks ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms sign split-elog split-log strict strict-keepdir test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -frecord-gcc-switches -march=skylake -mabm -flto=6"
GENTOO_MIRRORS="http://mirrors.evowise.com/gentoo/ https://mirrors.evowise.com/gentoo/ http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/ http://mirror.netcologne.de/gentoo/"
LANG="it_IT.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--sort-common -flto=6"
LINGUAS="it it_IT"
MAKEOPTS="-j7 -l6"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac aalib acl acpi activities adns alsa amd64 ao audiofile bash-completion bluetooth branding brotli bzip2 cairo caps cdda cddb cdparanoia cdr cli crypt css cups curl dbus declarative dga djvu dri dts dvd dvdr emboss encode exif expat fbcon ffmpeg fftw flac fontconfig foomaticdb fortran ftp gd gdbm geoip gif gimp gmp gnutls gphoto2 gpm graphviz gtk handbook iconv icu idn imagemagick imlib ipv6 java javascript jbig jemalloc jpeg jpeg2k kde kipi kwallet lame lcms libass libnotify libsamplerate libtirpc lm_sensors lua lzma lzo mad mmap mng mp3 mp4 mpeg mplayer multilib musicbrainz ncurses nls nptl nsplugin offensive ogg openal opengl openmp pam pango pcre pdf phonon plasma png policykit postscript ppds pulseaudio qml qt5 rdesktop readline recode samba sctp sdl seccomp sndfile sockets speex spell split-usr sqlite ssl startup-notification svg symlink syslog systemd sysvipc taglib test theora threads tidy tiff truetype udev udisks unicode upower usb vaapi vala vim-syntax vnc vorbis wavpack wayland widgets win32codecs wmf wxwidgets x264 xattr xcb xcomposite xine xml xpm xscreensaver xv xvid yahoo zlib zstd" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="hda-intel virmidi" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" CAMERAS="kodak ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" CURL_SSL="gnutls" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" L10N="it en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="nlpsolver wiki-publisher" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python3_7" RUBY_TARGETS="ruby25" USERLAND="GNU" VIDEO_CARDS="intel i965" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

# emerge -1pqv =dev-python/pytest-mock-1.11.2
[ebuild  N    ] dev-python/pytest-mock-1.11.2  PYTHON_TARGETS="python3_7 (-pypy3) -python2_7 -python3_6 (-python3_8)"
Comment 1 ernsteiswuerfel archtester 2020-03-29 21:38:45 UTC
Created attachment 627046 [details]
build.log (ppc)

Fails the same tests on ppc too.

[...]
FAILED tests/test_pytest_mock.py::test_deprecated_mock - Failed: nomatch: '*DeprecationWarning: "mock...
FAILED tests/test_pytest_mock.py::test_mocker_aliases[ANY] - ValueError: unknown configuration value:...
FAILED tests/test_pytest_mock.py::test_mocker_aliases[call] - ValueError: unknown configuration value...
FAILED tests/test_pytest_mock.py::test_mocker_aliases[create_autospec] - ValueError: unknown configur...
FAILED tests/test_pytest_mock.py::test_mocker_aliases[MagicMock] - ValueError: unknown configuration ...
FAILED tests/test_pytest_mock.py::test_mocker_aliases[Mock] - ValueError: unknown configuration value...
FAILED tests/test_pytest_mock.py::test_mocker_aliases[mock_open] - ValueError: unknown configuration ...
FAILED tests/test_pytest_mock.py::test_mocker_aliases[NonCallableMock] - ValueError: unknown configur...
FAILED tests/test_pytest_mock.py::test_mocker_aliases[PropertyMock] - ValueError: unknown configurati...
FAILED tests/test_pytest_mock.py::test_mocker_aliases[sentinel] - ValueError: unknown configuration v...
FAILED tests/test_pytest_mock.py::test_monkeypatch_native - assert 0 == 1
FAILED tests/test_pytest_mock.py::test_plain_stopall - Failed: nomatch: '* 1 passed in *'
======================= 12 failed, 3 passed, 2 xfailed, 27 error in 4.42 seconds =======================
 * ERROR: dev-python/pytest-mock-1.11.2::gentoo failed (test phase):
 *   Tests fail with python2.7
Comment 2 Renata Nagtalon 2020-03-31 21:28:59 UTC
Created attachment 628128 [details]
pytest-mock-1.11.2.ebuild

The problem is that pytest-mock is not installed and thus pytest cannot find the plugin mock. As all tests are supposed to test that plugin, nearly everything fails. To fix this, use distutils_install_for_testing in python_test().

Doing this also fixes some other tests which are currently deactivated without a notice. I took the liberty to investigate all the tests and whether they still need to be deactivated and if so why. It turned out that with proper arguments only the test test_standalone_mock needs to be disabled.

You can find the resulting ebuild attached.
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2020-04-07 13:25:48 UTC
arm64:
FAILED tests/test_pytest_mock.py::test_deprecated_mock - Failed: nomatch: '*DeprecationWarning: "mock" fixture has been deprecated, use "mocker"*'
FAILED tests/test_pytest_mock.py::test_mocker_aliases[ANY] - ValueError: unknown configuration value: u'mock_use_standalone_module'
FAILED tests/test_pytest_mock.py::test_mocker_aliases[call] - ValueError: unknown configuration value: u'mock_use_standalone_module'
FAILED tests/test_pytest_mock.py::test_mocker_aliases[create_autospec] - ValueError: unknown configuration value: u'mock_use_standalone_module'
FAILED tests/test_pytest_mock.py::test_mocker_aliases[MagicMock] - ValueError: unknown configuration value: u'mock_use_standalone_module'
FAILED tests/test_pytest_mock.py::test_mocker_aliases[Mock] - ValueError: unknown configuration value: u'mock_use_standalone_module'
FAILED tests/test_pytest_mock.py::test_mocker_aliases[mock_open] - ValueError: unknown configuration value: u'mock_use_standalone_module'
FAILED tests/test_pytest_mock.py::test_mocker_aliases[NonCallableMock] - ValueError: unknown configuration value: u'mock_use_standalone_module'
FAILED tests/test_pytest_mock.py::test_mocker_aliases[PropertyMock] - ValueError: unknown configuration value: u'mock_use_standalone_module'
FAILED tests/test_pytest_mock.py::test_mocker_aliases[sentinel] - ValueError: unknown configuration value: u'mock_use_standalone_module'
FAILED tests/test_pytest_mock.py::test_monkeypatch_native - assert 0 == 1
Comment 4 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2020-04-18 13:35:44 UTC
Thank you for your research.  I'm going to use this in 2.0.0 bump.
Comment 5 Renata Nagtalon 2021-04-05 10:55:57 UTC
The affected version (pytest-mock-1.11.2) is no longer in the tree and newer versions have a functioning test setup (Thanks Michał Górny!), so I think this issue can be closed.
Comment 6 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2021-04-05 12:15:16 UTC
Thanks for noticing.