* 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}")
 | |
|  
 |