classification
Title: skip tests that raise PermissionError in test_os (non-root user on Android)
Type: behavior Stage: resolved
Components: Tests Versions: Python 3.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: berker.peksag, xdegaye
Priority: normal Keywords: patch

Created on 2017-01-06 15:14 by xdegaye, last changed 2017-11-12 16:58 by xdegaye. This issue is now closed.

Files
File name Uploaded Description Edit
test_os.patch xdegaye, 2017-01-07 20:53 review
issue29180_01.patch xdegaye, 2017-01-09 19:35 review
Pull Requests
URL Status Linked Edit
PR 4374 merged xdegaye, 2017-11-11 19:20
Messages (6)
msg284824 - (view) Author: Xavier de Gaye (xdegaye) * (Python committer) Date: 2017-01-06 15:14
======================================================================                   [1633/2616]
ERROR: test_link (test.test_os.LinkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/test/test_os.py", line 1703, in test_link
    self._test_link(self.file1, self.file2)
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/test/test_os.py", line 1698, in _test_link
    os.link(file1, file2)
PermissionError: [Errno 13] Permission denied: '@test_2295_tmp' -> '@test_2295_tmp2'

======================================================================
ERROR: test_link_bytes (test.test_os.LinkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/test/test_os.py", line 1707, in test_link_bytes
    bytes(self.file2, sys.getfilesystemencoding()))
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/test/test_os.py", line 1698, in _test_link
    os.link(file1, file2)
PermissionError: [Errno 13] Permission denied: b'@test_2295_tmp' -> b'@test_2295_tmp2'

======================================================================
ERROR: test_unicode_name (test.test_os.LinkTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/test/test_os.py", line 1717, in test_unicode_name
    self._test_link(self.file1, self.file2)
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/test/test_os.py", line 1698, in _test_link
    os.link(file1, file2)
PermissionError: [Errno 13] Permission denied: '@test_2295_tmpñ' -> '@test_2295_tmpñ2'

======================================================================
ERROR: test_stty_match (test.test_os.TermsizeTests)
Check if stty returns the same results
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/test/test_os.py", line 2795, in test_stty_match
    size = subprocess.check_output(['stty', 'size']).decode().split()
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/subprocess.py", line 336, in check_output
    **kwargs).stdout
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/subprocess.py", line 403, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/subprocess.py", line 1323, in _execute_child
    raise child_exception_type(errno_num, err_msg)
PermissionError: [Errno 13] Permission denied

======================================================================
ERROR: test_attributes (test.test_os.TestScandir)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/sdcard/org.bitbucket.pyona/lib/python3.7/test/test_os.py", line 3150, in test_attributes
    os.link(filename, os.path.join(self.path, "link_file.txt"))
PermissionError: [Errno 13] Permission denied: '/data/local/tmp/test_python_2295/@test_2295_tmp/file
.txt' -> '/data/local/tmp/test_python_2295/@test_2295_tmp/link_file.txt'

----------------------------------------------------------------------
Ran 238 tests in 4.675s

FAILED (errors=5, skipped=40)
test test_os failed
msg284932 - (view) Author: Xavier de Gaye (xdegaye) * (Python committer) Date: 2017-01-07 20:53
Patch attached.
msg284946 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2017-01-08 00:42
Are you planning to use test.support.os_link() to fix other tests in near future? If test_os is the only user of the helper, I'd say let's keep it in Lib/test/test_os.py for now. test.support is already big enough and it would be better not to put every snippet in it :)

If there are other tests that can benefit from using it, the patch looks good to me.
msg284995 - (view) Author: Xavier de Gaye (xdegaye) * (Python committer) Date: 2017-01-08 16:03
> If test_os is the only user of the helper, I'd say let's keep it in Lib/test/test_os.py for now.

I agree with that concern.

support.os_link() is also used by a patch in issue 29181, and I am planning to modify the changes made by issue 28759 to also use it so that tests calling os.link() are skipped based on the fact that they raise PermissionError instead of based on the fact that they are being run by an Android non-root user as is currently the case.
msg285065 - (view) Author: Xavier de Gaye (xdegaye) * (Python committer) Date: 2017-01-09 19:35
New patch following Serhiy's suggestion in msg285008.
msg306123 - (view) Author: Xavier de Gaye (xdegaye) * (Python committer) Date: 2017-11-12 16:57
New changeset 6a55d09573e5c35c9e4a24a6f811120b41a2a994 by xdegaye in branch 'master':
bpo-29180: Skip test_os tests on PermissionError raised by Android (GH-4374)
https://github.com/python/cpython/commit/6a55d09573e5c35c9e4a24a6f811120b41a2a994
History
Date User Action Args
2017-11-12 16:58:02xdegayesetstatus: open -> closed
resolution: fixed
stage: patch review -> resolved
2017-11-12 16:57:06xdegayesetmessages: + msg306123
2017-11-11 19:20:37xdegayesetpull_requests: + pull_request4323
2017-11-11 18:43:17xdegayesetversions: - Python 3.6
2017-02-03 18:43:59xdegayesetassignee: xdegaye ->
2017-01-09 19:35:34xdegayesetfiles: + issue29180_01.patch

messages: + msg285065
2017-01-08 16:03:39xdegayesetmessages: + msg284995
2017-01-08 00:42:01berker.peksagsetnosy: + berker.peksag
messages: + msg284946
2017-01-07 20:53:11xdegayesetfiles: + test_os.patch
keywords: + patch
messages: + msg284932

stage: needs patch -> patch review
2017-01-06 21:30:19xdegayelinkissue26865 dependencies
2017-01-06 15:14:52xdegayecreate