GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-85934: Use getattr_static when adding mock spec by melwitt · Pull Request #22209 · python/cpython

Conversation

@melwitt

@melwitt melwitt commented Sep 12, 2020 •
edited by bedevere-bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

When async magic method support was added to unittest.mock.Mock to address issue #26467, it introduced a getattr call [1] that causes class properties to be called when the class is used as a mock spec.

This caused a problem for a test in my project when running with Python 3.8 where previously the test worked OK with Python 3.6.

The test aims to verify that a class instance is not created if the called code path does not access the class property and thus the class will not create a heavy object unless it's needed (lazy create on access via @property).

As of Python 3.8, the @property is always called and is called by the mock spec process itself, even though the code path being tested does not access the class @property.

Here is a code snippet that illustrates the @property calling from the mock spec alone:

class SomethingElse(object):
    def __init__(self):
        self._instance = None

    @property
    def instance(self):
        if not self._instance:
            self._instance = 'object'

...

    def test_property_not_called_with_spec_mock(self):
        obj = SomethingElse()
        self.assertIsNone(obj._instance)
        mock = Mock(spec=obj)
        self.assertIsNone(obj._instance)
$ ./python -m unittest -v unittest.test.testmock.testmock.MockTest.test_property_not_called_with_spec_mock
test_property_not_called_with_spec_mock (unittest.test.testmock.testmock.MockTest) ... FAIL

======================================================================
FAIL: test_property_not_called_with_spec_mock (unittest.test.testmock.testmock.MockTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/vagrant/cpython/Lib/unittest/test/testmock/testmock.py", line 2173, in test_property_not_called_with_spec_mock
    self.assertIsNone(obj._instance)
AssertionError: 'object' is not None

In summary, since commit 77b3b77, class properties are being called when adding mock specs and this can introduce side effects for tests that are verifying state affected by code inside a @property.

This replaces the getattr call with a inspect.getattr_static call to avoid executing class code as part of the mock speccing process.

[1]

cpython/Lib/unittest/mock.py

Line 492 in fb27187

if iscoroutinefunction(getattr(spec, attr, None)):

https://bugs.python.org/issue41768

  • Issue: unittest.mock spec calls class properties #85934

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@the-knights-who-say-ni the-knights-who-say-ni added the CLA not signed label Sep 12, 2020
@bedevere-bot bedevere-bot added the awaiting review label Sep 12, 2020
@melwitt

melwitt commented Sep 12, 2020

Copy link
Copy Markdown
Contributor Author

Note: I have signed the CLA earlier today, so the records should be updated sometime next week.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@the-knights-who-say-ni the-knights-who-say-ni added CLA signed and removed CLA not signed labels Sep 16, 2020
@terryjreedy
terryjreedy requested a review from voidspace September 18, 2020 21:44
terryjreedy
terryjreedy previously requested changes Sep 18, 2020
View reviewed changes

@terryjreedy terryjreedy left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not know the mock specification well enough to be sure of what it should do, except that modifying the underlying object is likely wrong, and that the mock should actually mock it. So the code patch is likely correct and an additional test seems needed.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread Lib/unittest/test/testmock/testmock.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Lib/unittest/test/testmock/testmock.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread Lib/unittest/test/testmock/testmock.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot

bedevere-bot commented Sep 18, 2020

Copy link
Copy Markdown

A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated.

Once you have made the requested changes, please leave a comment on this pull request containing the phrase I have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot added awaiting changes and removed awaiting review labels Sep 18, 2020
@melwitt

melwitt commented Sep 18, 2020 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

I do not know the mock specification well enough to be sure of what it should do, except that modifying the underlying object is likely wrong, and that the mock should actually mock it. So the code patch is likely correct and an additional test seems needed.

Yes, when you create a mock and provide a spec to it (a class or object) the mock will be created to only allow the interface of the class spec. That way, arbitrary calls upon your mock with invalid methods or attributes will fail in your test.

In order to create the mock according to the spec, it needs to inspect the class or object but ideally it should not call any methods on the object or change its state (IMHO) while doing so. Prior to Python 3.8 it did not, but the more recent async mock support checks whether methods are coroutine functions and its use of getattr is now causing object properties to be called.

Here's a section in the docs that explains speccing as part of an explanation of auto-speccing:

https://docs.python.org/3/library/unittest.mock.html#autospeccing

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

terryjreedy
terryjreedy reviewed Sep 18, 2020
View reviewed changes
Comment thread Lib/unittest/test/testmock/testmock.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

@melwitt

melwitt commented Sep 19, 2020

Copy link
Copy Markdown
Contributor Author

Gah, I have really messed this up by failing at using the UI here. Apologies, working on fixing it.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@melwitt

melwitt commented Sep 19, 2020 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

Windows test suite failure appears unrelated [1]:

======================================================================
FAIL: test_sendfile_close_peer_in_the_middle_of_receiving (test.test_asyncio.test_sendfile.ProactorEventLoopTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\a\cpython\cpython\lib\test\test_asyncio\test_sendfile.py", line 458, in test_sendfile_close_peer_in_the_middle_of_receiving
    self.run_loop(
AssertionError: ConnectionError not raised

----------------------------------------------------------------------

[1] https://github.com/python/cpython/pull/22209/checks?check_run_id=1136737699#step:5:4914

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@melwitt

melwitt commented Sep 19, 2020

Copy link
Copy Markdown
Contributor Author

I have made the requested changes; please review again

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot added awaiting change review and removed awaiting changes labels Sep 19, 2020
@bedevere-bot

bedevere-bot commented Sep 19, 2020

Copy link
Copy Markdown

Thanks for making the requested changes!

@terryjreedy: please review the changes made to this pull request.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot
bedevere-bot requested a review from terryjreedy September 19, 2020 02:52
@terryjreedy

terryjreedy commented Sep 19, 2020 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

I could not download logs, so when one can, better to briefly summarize the failure in a comment. Ah, you did, but I did not see on email. I triggered the minimum retest possible.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

terryjreedy
terryjreedy reviewed Sep 19, 2020
View reviewed changes

@terryjreedy terryjreedy left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes match those requested. I am hoping someone else reviews this, but I will read spec reference if not.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@terryjreedy
terryjreedy dismissed their stale review September 19, 2020 03:36

Changes made, but not ready to approve for merging.

@melwitt

melwitt commented Sep 19, 2020

Copy link
Copy Markdown
Contributor Author

I could not download logs, so when one can, better to briefly summarize the failure in a comment. Ah, you did, but I did not see on email. I triggered the minimum retest possible.

Sorry about that, I'm a bit new to the github PR workflow for code review and am missing some things.

After I wrote "appears unrelated" and posted it, I realized I should have included a paste of the error and a link to the log so I made an edit afterward. Thanks for your patience.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@python python deleted a comment from the-knights-who-say-ni Feb 20, 2021
@melwitt
melwitt requested a review from cjw296 as a code owner July 28, 2021 00:57
@melwitt
melwitt force-pushed the unittest.mock-getattr branch from 5722f37 to 4e3cb45 Compare August 19, 2021 15:38
melwitt and others added 4 commits August 19, 2021 15:48
@melwitt
bpo-41768: Use getattr_static when adding mock spec
0a61770
Since commit 77b3b77, class properties
are being called when adding mock specs and this can introduce side
effects for tests that are verifying state affected by code inside a
@Property.

This replaces the getattr call with a inspect.getattr_static call to
avoid executing class code as part of the mock speccing process.
@blurb-it @melwitt
📜🤖 Added by blurb_it.
943f8d3
@melwitt
Return object from SomethingElse.instance property
4bdc642
The goal of the property is provide access to the object and create it lazily on first access.
@melwitt @terryjreedy
Apply suggestions from code review
2e05daa
Co-authored-by: Terry Jan Reedy <[email protected]>
carljm
carljm approved these changes May 4, 2023
View reviewed changes

@carljm carljm left a comment •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The two possible concerns here are that getattr_static is slower than getattr, and backward-compatibility. But I think mock speccing executing properties is a bug, and fixing that bug outweighs those two concerns. Also, @AlexWaygood made getattr_static faster in 3.12. And this behavior of mock spec executing properties was introduced relatively recently (with AsyncMock); that change was a back-compat break from previous longstanding behavior, and this is the fix for it.

Because this is a bug, I think the fix should also be backported.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

AlexWaygood reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
@bedevere-bot bedevere-bot added awaiting merge and removed awaiting changes labels May 4, 2023
arhadthedev
arhadthedev reviewed May 4, 2023
View reviewed changes
Comment thread Misc/NEWS.d/next/Library/2020-09-16-16-53-06.bpo-41768.8_fWkC.rst Resolved

Uh oh!

There was an error while loading. Please reload this page.

@arhadthedev arhadthedev changed the title bpo-41768: Use getattr_static when adding mock spec gh-85934: Use getattr_static when adding mock spec May 4, 2023
@bedevere-bot bedevere-bot added awaiting review and removed awaiting merge labels May 4, 2023
@arhadthedev arhadthedev added the stdlib Standard Library Python modules in the Lib/ directory label May 4, 2023
@melwitt @arhadthedev
Update Misc/NEWS.d/next/Library/2020-09-16-16-53-06.bpo-41768.8_fWkC.rst
9baa71f
Co-authored-by: Oleg Iarygin <[email protected]>
@carljm carljm mentioned this pull request May 5, 2023
unittest.mock.create_autospec() can crash when accessing properties from objects #98301
Closed
carljm
carljm requested changes May 5, 2023
View reviewed changes

@carljm carljm left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently async methods decorated with @classmethod or @staticmethod are detected as async attributes. This PR causes them not to be anymore. I think we need to preserve this behavior (and add tests for it.) We'll have to follow __wrapped__ to the decorated method, and test it with iscoroutinefunction. We can do this using inspect.unwrap.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@bedevere-bot bedevere-bot removed the awaiting review label May 5, 2023
@bedevere-bot

bedevere-bot commented May 5, 2023

Copy link
Copy Markdown

A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated.

Once you have made the requested changes, please leave a comment on this pull request containing the phrase I have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot added the awaiting changes label May 5, 2023
melwitt added 2 commits May 15, 2023 22:06
@melwitt
Merge branch 'python:main' into unittest.mock-getattr
0ab362e
@melwitt
Handle async methods decorated with @classmethod or @staticmethod
a20b360
@melwitt
melwitt requested a review from carljm May 16, 2023 05:41
@melwitt

melwitt commented May 16, 2023

Copy link
Copy Markdown
Contributor Author

I have made the requested changes; please review again (per bedevere-bot)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot bedevere-bot added awaiting change review and removed awaiting changes labels May 16, 2023
@bedevere-bot

bedevere-bot commented May 16, 2023

Copy link
Copy Markdown

Thanks for making the requested changes!

@carljm: please review the changes made to this pull request.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@melwitt

melwitt commented May 16, 2023 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

Update: looks like this is already documented and is being worked on: #104341

AFAICT the test__xxsubinterpreters failure in the Hypothesis Tests on Ubuntu job is unrelated:

Full traceback
0:00:18 load avg: 2.10 [ 18/427/1] test__xxsubinterpreters crashed (Exit code -6)

Fatal Python error: drop_gil: PyMUTEX_LOCK(gil->switch_mutex) failed
Python runtime state: initialized

Thread 0x00007fdc1efb44c0 (most recent call first):
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/test__xxsubinterpreters.py", line 80 in clean_up_interpreters
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/test__xxsubinterpreters.py", line 88 in tearDown
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/case.py", line [59](https://github.com/python/cpython/actions/runs/4988297478/jobs/8930880863?pr=22209#step:19:60)4 in _callTearDown
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/case.py", line 637 in run
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/case.py", line 690 in __call__
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 122 in run
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 84 in __call__
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 122 in run
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 84 in __call__
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 122 in run
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 84 in __call__
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/runner.py", line 240 in run
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/support/__init__.py", line 1115 in _run_suite
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/support/__init__.py", line 1241 in run_unittest
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest.py", line 294 in _test_module
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest.py", line 330 in _runtest_inner2
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest.py", line 373 in _runtest_inner
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest.py", line 232 in _runtest
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest.py", line 278 in runtest
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest_mp.py", line 98 in run_tests_worker
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/main.py", line 759 in _main
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/main.py", line 738 in main
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/main.py", line 802 in main
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/regrtest.py", line 43 in _main
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/regrtest.py", line 47 in <module>
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/runpy.py", line 88 in _run_code
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/runpy.py", line 198 in _run_module_as_main
Fatal Python error: Aborted

Thread 0x00007fdc1efb44c0 (most recent call first):
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/test__xxsubinterpreters.py", line 80 in clean_up_interpreters
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/test__xxsubinterpreters.py", line 88 in tearDown
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/case.py", line 594 in _callTearDown
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/case.py", line [63](https://github.com/python/cpython/actions/runs/4988297478/jobs/8930880863?pr=22209#step:19:64)7 in run
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/case.py", line 690 in __call__
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 122 in run
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 84 in __call__
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 122 in run
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 84 in __call__
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 122 in run
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/suite.py", line 84 in __call__
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/unittest/runner.py", line 240 in run
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/support/__init__.py", line 1115 in _run_suite
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/support/__init__.py", line 1241 in run_unittest
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest.py", line 294 in _test_module
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest.py", line 330 in _runtest_inner2
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest.py", line 3[73](https://github.com/python/cpython/actions/runs/4988297478/jobs/8930880863?pr=22209#step:19:74) in _runtest_inner
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest.py", line 232 in _runtest
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest.py", line 278 in runtest
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/runtest_mp.py", line 98 in run_tests_worker
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/main.py", line [75](https://github.com/python/cpython/actions/runs/4988297478/jobs/8930880863?pr=22209#step:19:76)9 in _main
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/main.py", line 738 in main
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/libregrtest/main.py", line [80](https://github.com/python/cpython/actions/runs/4988297478/jobs/8930880863?pr=22209#step:19:81)2 in main
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/regrtest.py", line 43 in _main
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/test/regrtest.py", line 47 in <module>
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/runpy.py", line 88 in _run_code
  File "/home/runner/work/cpython/cpython-ro-srcdir/Lib/runpy.py", line 198 in _run_module_as_main

Extension modules: _testcapi, _xxsubinterpreters (total: 2)
carljm reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

carljm
carljm approved these changes May 19, 2023
View reviewed changes
@bedevere-bot bedevere-bot added awaiting merge and removed awaiting change review labels May 19, 2023
@carljm carljm mentioned this pull request May 19, 2023
bpo-45756: do not execute @property descrs while creating mock autospecs #29901
Closed
@carljm
carljm merged commit 2e09310 into python:main May 23, 2023
@bedevere-bot bedevere-bot removed the awaiting merge label May 23, 2023
@carljm

carljm commented May 23, 2023

Copy link
Copy Markdown
Member

Thanks @melwitt for the patch!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-bot

bedevere-bot commented May 23, 2023

Copy link
Copy Markdown

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot aarch64 Debian Clang LTO + PGO 3.x has failed when building commit 2e09310.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/1084/builds/905) and take a look at the build logs.
  4. Check if the failure is related to this commit (2e09310) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/1084/builds/905

Summary of the results of the build (if available):

== Tests result: ENV CHANGED ==

446 tests OK.

10 slowest tests:

  • test_concurrent_futures: 2 min 13 sec
  • test_multiprocessing_spawn: 1 min 46 sec
  • test_multiprocessing_fork: 1 min 11 sec
  • test_multiprocessing_forkserver: 1 min 9 sec
  • test_signal: 1 min 8 sec
  • test_socket: 38.2 sec
  • test_math: 31.8 sec
  • test_subprocess: 31.6 sec
  • test_io: 31.4 sec
  • test_imaplib: 31.0 sec

1 test altered the execution environment:
test_importlib

18 tests skipped:
test.test_asyncio.test_windows_events
test.test_asyncio.test_windows_utils test_devpoll test_gdb
test_ioctl test_kqueue test_launcher test_msilib
test_peg_generator test_startfile test_tix test_tkinter test_ttk
test_winconsoleio test_winreg test_winsound test_wmi
test_zipfile64

Total duration: 4 min 9 sec

Click to see traceback logs
remote: Enumerating objects: 26, done.        
remote: Counting objects:   3% (1/26)        
remote: Counting objects:   7% (2/26)        
remote: Counting objects:  11% (3/26)        
remote: Counting objects:  15% (4/26)        
remote: Counting objects:  19% (5/26)        
remote: Counting objects:  23% (6/26)        
remote: Counting objects:  26% (7/26)        
remote: Counting objects:  30% (8/26)        
remote: Counting objects:  34% (9/26)        
remote: Counting objects:  38% (10/26)        
remote: Counting objects:  42% (11/26)        
remote: Counting objects:  46% (12/26)        
remote: Counting objects:  50% (13/26)        
remote: Counting objects:  53% (14/26)        
remote: Counting objects:  57% (15/26)        
remote: Counting objects:  61% (16/26)        
remote: Counting objects:  65% (17/26)        
remote: Counting objects:  69% (18/26)        
remote: Counting objects:  73% (19/26)        
remote: Counting objects:  76% (20/26)        
remote: Counting objects:  80% (21/26)        
remote: Counting objects:  84% (22/26)        
remote: Counting objects:  88% (23/26)        
remote: Counting objects:  92% (24/26)        
remote: Counting objects:  96% (25/26)        
remote: Counting objects: 100% (26/26)        
remote: Counting objects: 100% (26/26), done.        
remote: Compressing objects:   7% (1/14)        
remote: Compressing objects:  14% (2/14)        
remote: Compressing objects:  21% (3/14)        
remote: Compressing objects:  28% (4/14)        
remote: Compressing objects:  35% (5/14)        
remote: Compressing objects:  42% (6/14)        
remote: Compressing objects:  50% (7/14)        
remote: Compressing objects:  57% (8/14)        
remote: Compressing objects:  64% (9/14)        
remote: Compressing objects:  71% (10/14)        
remote: Compressing objects:  78% (11/14)        
remote: Compressing objects:  85% (12/14)        
remote: Compressing objects:  92% (13/14)        
remote: Compressing objects: 100% (14/14)        
remote: Compressing objects: 100% (14/14), done.        
remote: Total 14 (delta 12), reused 1 (delta 0), pack-reused 0        
From https://github.com/python/cpython
 * branch                  main       -> FETCH_HEAD
Note: switching to '2e0931046dcc200fd6abb2cdfaf57d8b99117c57'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 2e0931046d gh-85934: Use getattr_static when adding mock spec (#22209)
Switched to and reset branch 'main'

./configure: line 8401: -reorder-blocks=ext-tsp: command not found

find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
find: ‘build’: No such file or directory
make[2]: [Makefile:2785: clean-retain-profile] Error 1 (ignored)
./Modules/expat/xmlparse.c:3116:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
./Modules/expat/xmlparse.c:3115:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
./Modules/expat/xmlparse.c:4059:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
./Modules/expat/xmlparse.c:4058:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
2 warnings generated.
warning: no profile data available for file "getpath_noop.c" [-Wprofile-instr-unprofiled]
warning: profile data may be out of date: of 14 functions, 1 has mismatched data that will be ignored [-Wprofile-instr-out-of-date]
1 warning generated.
1 warning generated.
warning: no profile data available for file "_csv.c" [-Wprofile-instr-unprofiled]
warning: no profile data available for file "rotatingtree.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "_lsprof.c" [-Wprofile-instr-unprofiled]
1 warning generated.
1 warning generated.
warning: no profile data available for file "_xxinterpchannelsmodule.c" [-Wprofile-instr-unprofiled]
warning: no profile data available for file "audioop.c" [-Wprofile-instr-unprofiled]
warning: no profile data available for file "_xxsubinterpretersmodule.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "_zoneinfo.c" [-Wprofile-instr-unprofiled]
1 warning generated.
1 warning generated.
1 warning generated.
./Modules/expat/xmlparse.c:3116:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
./Modules/expat/xmlparse.c:3115:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
./Modules/expat/xmlparse.c:4059:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
./Modules/expat/xmlparse.c:4058:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
2 warnings generated.
warning: no profile data available for file "_cryptmodule.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "grpmodule.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "mmapmodule.c" [-Wprofile-instr-unprofiled]
warning: no profile data available for file "nismodule.c" [-Wprofile-instr-unprofiled]
1 warning generated.
1 warning generated.
warning: no profile data available for file "ossaudiodev.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "syslogmodule.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "spwdmodule.c" [-Wprofile-instr-unprofiled]
1warning: no profile data available for file "posixshmem.c" [-Wprofile-instr-unprofiled]
 warning generated.
1 warning generated.
warning: no profile data available for file "_curses_panel.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "_cursesmodule.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "_uuidmodule.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "_xxtestfuzz.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "xxsubtype.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "fuzzer.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "_testimportmultiple.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "_testsinglephase.c" [-Wprofile-instr-unprofiled]
1 warning generated.
warning: no profile data available for file "_testmultiphase.c" [-Wprofile-instr-unprofiled]
warning: no profile data available for file "_testclinic.c" [-Wprofile-instr-unprofiled]
warning: no profile data available for file "_ctypes_test.c" [-Wprofile-instr-unprofiled]
warning: no profile data available for file "xxlimited_35.c" [-Wprofile-instr-unprofiled]
warning: no profile data available for file "xxlimited.c" [-Wprofile-instr-unprofiled]
1 warning generated.
1 warning generated.
1 warning generated.
1 warning generated.
1 warning generated.
warning: profile data may be out of date: of 3 functions, 2 have mismatched data that will be ignored [-Wprofile-instr-out-of-date]
1 warning generated.

make: *** [Makefile:2015: buildbottest] Error 3
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@arhadthedev arhadthedev arhadthedev left review comments
@terryjreedy terryjreedy terryjreedy left review comments
@carljm carljm carljm approved these changes
@voidspace voidspace Awaiting requested review from voidspace
@cjw296 cjw296 Awaiting requested review from cjw296 cjw296 is a code owner
@ambv ambv Awaiting requested review from ambv

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

stdlib Standard Library Python modules in the Lib/ directory

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

8 participants

@melwitt @bedevere-bot @terryjreedy @willingc @carljm @arhadthedev @the-knights-who-say-ni @ezio-melotti
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.