pytest-dev / pytest-dev/execnet

Test failure with enabled warnings

Open
#31 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
102
Forks
47
PR merge metrics
No merged PRs in 30d

Description

Execnet has 1 additional test failure with Python >=3.2 and enabled warnings (using e.g. PYTHONWARNINGS="d,i::ImportWarning" environmental variable) due to unexpected ResourceWarning in stderr.

$ PYTHONPATH="$(pwd)" PYTHONWARNINGS="d,i::ImportWarning" py.test-3.3 testing
==================================================================== test session starts ====================================================================
platform linux -- Python 3.3.5 -- py-1.4.20 -- pytest-2.5.2
gateway test setup scope: session
execnet: /tmp/execnet/execnet/__init__.py -- 1.2.0
collected 916 items 

testing/test_basics.py ...................ss.....ss.....ss.F.....
testing/test_channel.py ..s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s.
testing/test_gateway.py ..s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s......s.ss
testing/test_multi.py ..s.xx
testing/test_termination.py .....ss.xxxxxss
testing/test_threadpool.py ......x.......
testing/test_basics.py sssssssssssssssssssss
testing/test_channel.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
testing/test_gateway.py sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
testing/test_multi.py ssssss
testing/test_termination.py sssssssssssssss
testing/test_threadpool.py ssssssssssssss
testing/test_basics.py sssssssssssssssssssss
testing/test_channel.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
testing/test_gateway.py sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
testing/test_multi.py ssssss
testing/test_termination.py sssssssssssssss
testing/test_threadpool.py ssssssssssssss
testing/test_basics.py .....ss.....ss................ss..
testing/test_channel.py s.
testing/test_fixes.py ..
testing/test_gateway.py ............s.
testing/test_multi.py ..............
testing/test_rsync.py ...........
testing/test_serializer.py ...............
testing/test_termination.py ......ss
testing/test_xspec.py .....................ss.

========================================================================= FAILURES ==========================================================================
_____________________________________________________________ test_stdouterrin_setnull[thread] ______________________________________________________________

execmodel = <ExecModel 'thread'>

    @pytest.mark.skipif("not hasattr(os, 'dup')")                                                                                                            
    def test_stdouterrin_setnull(execmodel):                                                                                                                 
        cap = py.io.StdCaptureFD()                                                                                                                           
        gateway_base.init_popen_io(execmodel)                                                                                                                
        os.write(1, "hello".encode('ascii'))                                                                                                                 
        if os.name == "nt":                                                                                                                                  
            os.write(2, "world")
        os.read(0, 1)
        out, err = cap.reset()
        assert not out
>       assert not err
E       assert not "/tmp/execnet/testing/test_basics.py:196: ResourceWarning: unclosed file <_io.TextIOWrapper name=13 mode='r' encoding=...file <_io.TextIOWrapper name=1 mode='w' encoding='UTF-8'>\n  setattr(sys, patchsysdict[self.targetfd], self._oldsys)\n"

testing/test_basics.py:203: AssertionError
---------------------------------------------------------------------- Captured stderr ----------------------------------------------------------------------
/usr/lib64/python3.3/site-packages/py/_io/capture.py:77: ResourceWarning: unclosed file <_io.TextIOWrapper name=0 mode='r' encoding='UTF-8'>
  setattr(sys, patchsysdict[self.targetfd], self._oldsys)
================================================================== short test summary info ==================================================================
XFAIL testing/test_multi.py::test_safe_terminate[thread]
  reason: execution model 'thread' does not support task count
XFAIL testing/test_multi.py::test_safe_terminate2[thread]
  reason: execution model 'thread' does not support task count
XFAIL testing/test_termination.py::test_terminate_implicit_does_trykill[sys.executable-thread]
  reason: only os threading model supported
XFAIL testing/test_termination.py::test_terminate_implicit_does_trykill[python3.3-thread]
  reason: only os threading model supported
XFAIL testing/test_termination.py::test_terminate_implicit_does_trykill[python3.2-thread]
  reason: only os threading model supported
XFAIL testing/test_termination.py::test_terminate_implicit_does_trykill[python2.6-thread]
  reason: only os threading model supported
XFAIL testing/test_termination.py::test_terminate_implicit_does_trykill[python2.7-thread]
  reason: only os threading model supported
XFAIL testing/test_threadpool.py::test_limited_size[thread]
  WorkerPool does not implement limited size
SKIP [54] /tmp/execnet/testing/conftest.py:66: no 'gspecs' value found
SKIP [2] /usr/lib64/python3.3/site-packages/_pytest/skipping.py:132: condition: sys.version>="3.0"
SKIP [249] /tmp/execnet/testing/conftest.py:177: could not import 'eventlet'
SKIP [17] /tmp/execnet/testing/conftest.py:129: no pypy found
SKIP [17] /tmp/execnet/testing/conftest.py:129: no jython found
SKIP [249] /tmp/execnet/testing/conftest.py:177: could not import 'gevent'
=============================================== 1 failed, 319 passed, 588 skipped, 8 xfailed in 48.32 seconds ===============================================
sys:1: ResourceWarning: unclosed <socket.socket object, fd=17, family=2, type=1, proto=0>
sys:1: ResourceWarning: gc: 4 uncollectable objects at shutdown; use gc.set_debug(gc.DEBUG_UNCOLLECTABLE) to list them

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the warning-enabled run and start with testing/test_basics.py::test_stdouterrin_setnull, especially the call to gateway_base.init_popen_io(execmodel). Inspect the captured stderr and the related standard-stream handling; done means the test passes with Python 3.2+ and enabled warnings without unexpected ResourceWarning output.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.