* gnu/packages/patches/python-3.5-fix-tests.patch: Rename to ... * gnu/packages/patches/python-3-fix-tests.patch: ... this. Adjust and disable more tests. * gnu/packages/patches/python-3.5-getentropy-on-old-kernels.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/python.scm (python-2.7)[argument]: Patch '/bin/sh' in one more file. (python-3.5): Rename to ... (python-3.6): ... this. Update to 3.6.3. [source](patches): Remove obsolete patch, adjust to patch rename. (python-3): Use PYTHON-3.6.
		
			
				
	
	
		
			149 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
Additional test fixes which affect Python 3.5 (and presumably later) but not
 | 
						|
prior revisions of Python.
 | 
						|
 | 
						|
--- Lib/test/test_pathlib.py     2014-03-01 03:02:36.088311000 +0100
 | 
						|
+++ Lib/test/test_pathlib.py     2014-03-01 04:56:37.768311000 +0100
 | 
						|
@@ -2132,8 +2132,7 @@
 | 
						|
         self.assertEqual(given, expect)
 | 
						|
         self.assertEqual(set(p.rglob("FILEd*")), set())
 | 
						|
 
 | 
						|
-    @unittest.skipUnless(hasattr(pwd, 'getpwall'),
 | 
						|
-                         'pwd module does not expose getpwall()')
 | 
						|
+    @unittest.skipIf(True, "Guix builder home is '/' which causes trouble for these tests")
 | 
						|
     def test_expanduser(self):
 | 
						|
         P = self.cls
 | 
						|
         support.import_module('pwd')
 | 
						|
--- Lib/test/test_tarfile.py        2016-02-24 19:22:52.597208055 +0000
 | 
						|
+++ Lib/test/test_tarfile.py     2016-02-24 20:50:48.941950135 +0000
 | 
						|
@@ -2305,11 +2305,14 @@
 | 
						|
     try:
 | 
						|
         import pwd, grp
 | 
						|
     except ImportError:
 | 
						|
         return False
 | 
						|
-    if pwd.getpwuid(0)[0] != 'root':
 | 
						|
-        return False
 | 
						|
-    if grp.getgrgid(0)[0] != 'root':
 | 
						|
+    try:
 | 
						|
+        if pwd.getpwuid(0)[0] != 'root':
 | 
						|
+            return False
 | 
						|
+        if grp.getgrgid(0)[0] != 'root':
 | 
						|
+            return False
 | 
						|
+    except KeyError:
 | 
						|
         return False
 | 
						|
     return True
 | 
						|
 | 
						|
 | 
						|
--- Lib/test/test_asyncio/test_base_events.py
 | 
						|
+++ Lib/test/test_asyncio/test_base_events.py
 | 
						|
@@ -1216,6 +1216,8 @@
 | 
						|
         self._test_create_connection_ip_addr(m_socket, False)
 | 
						|
 | 
						|
     @patch_socket
 | 
						|
+    @unittest.skipUnless(support.is_resource_enabled('network'),
 | 
						|
+                         'network is not enabled')
 | 
						|
     def test_create_connection_service_name(self, m_socket):
 | 
						|
         m_socket.getaddrinfo = socket.getaddrinfo
 | 
						|
         sock = m_socket.socket.return_value
 | 
						|
 | 
						|
--- Lib/test/test_pdb.py.org    2017-03-12 03:09:01.991856701 +0100
 | 
						|
+++ Lib/test/test_pdb.py        2017-03-12 03:26:17.742572869 +0100
 | 
						|
 | 
						|
For some reason, KeyboardInterrupts do not work in the build
 | 
						|
environment (lack of controlling TTY?). Just change the expected
 | 
						|
outcome. Unfortunately, this will make it fail for users running
 | 
						|
`python -m test test_pdb test_pdb` interactively.
 | 
						|
 | 
						|
@@ -928,11 +928,11 @@
 | 
						|
     > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
 | 
						|
     -> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
 | 
						|
     (Pdb) continue
 | 
						|
-    pdb 1: <built-in function default_int_handler>
 | 
						|
+    pdb 1: Handlers.SIG_IGN
 | 
						|
     > <doctest test.test_pdb.test_pdb_issue_20766[0]>(5)test_function()
 | 
						|
     -> sess.set_trace(sys._getframe())
 | 
						|
     (Pdb) continue
 | 
						|
-    pdb 2: <built-in function default_int_handler>
 | 
						|
+    pdb 2: Handlers.SIG_IGN
 | 
						|
     """
 | 
						|
 | 
						|
 class PdbTestCase(unittest.TestCase):
 | 
						|
--- Lib/test/test_socket.py
 | 
						|
+++ Lib/test/test_socket.py
 | 
						|
@@ -802,6 +802,8 @@
 | 
						|
         if not fqhn in all_host_names:
 | 
						|
             self.fail("Error testing host resolution mechanisms. (fqdn: %s, all: %s)" % (fqhn, repr(all_host_names)))
 | 
						|
 
 | 
						|
+    @unittest.skipUnless(support.is_resource_enabled('network'),
 | 
						|
+                         'network is not enabled')
 | 
						|
     def test_host_resolution(self):
 | 
						|
         for addr in [support.HOST, '10.0.0.1', '255.255.255.255']:
 | 
						|
             self.assertEqual(socket.gethostbyname(addr), addr)
 | 
						|
--- Lib/test/test_spwd.py
 | 
						|
+++ Lib/test/test_spwd.py
 | 
						|
@@ -5,8 +5,7 @@
 | 
						|
 spwd = support.import_module('spwd')
 | 
						|
 
 | 
						|
 
 | 
						|
-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0,
 | 
						|
-                     'root privileges required')
 | 
						|
+@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
 | 
						|
 class TestSpwdRoot(unittest.TestCase):
 | 
						|
 
 | 
						|
     def test_getspall(self):
 | 
						|
@@ -56,8 +55,7 @@
 | 
						|
             self.assertRaises(TypeError, spwd.getspnam, bytes_name)
 | 
						|
 
 | 
						|
 
 | 
						|
-@unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() != 0,
 | 
						|
-                     'non-root user required')
 | 
						|
+@unittest.skipUnless(os.path.exists("/etc/shadow"), 'spwd tests require /etc/shadow')
 | 
						|
 class TestSpwdNonRoot(unittest.TestCase):
 | 
						|
 
 | 
						|
     def test_getspnam_exception(self):
 | 
						|
--- Lib/test/test_regrtest.py
 | 
						|
+++ Lib/test/test_regrtest.py
 | 
						|
@@ -700,6 +700,7 @@
 | 
						|
         output = self.run_tests('--fromfile', filename)
 | 
						|
         self.check_executed_tests(output, tests)
 | 
						|
 
 | 
						|
+    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
 | 
						|
     def test_interrupted(self):
 | 
						|
         code = TEST_INTERRUPTED
 | 
						|
         test = self.create_test('sigint', code=code)
 | 
						|
@@ -717,6 +718,7 @@
 | 
						|
                  % (self.TESTNAME_REGEX, len(tests)))
 | 
						|
         self.check_line(output, regex)
 | 
						|
 
 | 
						|
+    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
 | 
						|
     def test_slow_interrupted(self):
 | 
						|
         # Issue #25373: test --slowest with an interrupted test
 | 
						|
         code = TEST_INTERRUPTED
 | 
						|
--- Lib/test/test_generators.py
 | 
						|
+++ Lib/test/test_generators.py
 | 
						|
@@ -29,6 +29,7 @@
 | 
						|
         else:
 | 
						|
             return "FAILED"
 | 
						|
 
 | 
						|
+    @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment')
 | 
						|
     def test_raise_and_yield_from(self):
 | 
						|
         gen = self.generator1()
 | 
						|
         gen.send(None)
 | 
						|
--- Lib/test/test_normalization.py
 | 
						|
+++ Lib/test/test_normalization.py
 | 
						|
@@ -2,6 +2,7 @@
 | 
						|
 import unittest
 | 
						|
 
 | 
						|
 from http.client import HTTPException
 | 
						|
+from urllib.error import URLError
 | 
						|
 import sys
 | 
						|
 from unicodedata import normalize, unidata_version
 | 
						|
 
 | 
						|
@@ -43,6 +44,8 @@
 | 
						|
         except PermissionError:
 | 
						|
             self.skipTest(f"Permission error when downloading {TESTDATAURL} "
 | 
						|
                           f"into the test data directory")
 | 
						|
+        except URLError:
 | 
						|
+            self.skipTest("DNS lookups are not enabled.")
 | 
						|
         except (OSError, HTTPException):
 | 
						|
             self.fail(f"Could not retrieve {TESTDATAURL}")
 | 
						|
 
 |