[Python-3000-checkins] r58662 - in python/branches/py3k/Lib: netrc.py subprocess.py test/regrtest.py test/test_mailbox.py test/test_netrc.py test/test_pep277.py test/test_subprocess.py

guido.van.rossum python-3000-checkins at python.org
Fri Oct 26 06:29:24 CEST 2007


Author: guido.van.rossum
Date: Fri Oct 26 06:29:23 2007
New Revision: 58662

Modified:
   python/branches/py3k/Lib/netrc.py
   python/branches/py3k/Lib/subprocess.py
   python/branches/py3k/Lib/test/regrtest.py
   python/branches/py3k/Lib/test/test_mailbox.py
   python/branches/py3k/Lib/test/test_netrc.py
   python/branches/py3k/Lib/test/test_pep277.py
   python/branches/py3k/Lib/test/test_subprocess.py
Log:
Patch # 1331 by Christian Heimes.
The patch fixes some of the problems on Windows. It doesn't introduce
addition problems on Linux.


Modified: python/branches/py3k/Lib/netrc.py
==============================================================================
--- python/branches/py3k/Lib/netrc.py	(original)
+++ python/branches/py3k/Lib/netrc.py	Fri Oct 26 06:29:23 2007
@@ -26,9 +26,12 @@
                 file = os.path.join(os.environ['HOME'], ".netrc")
             except KeyError:
                 raise IOError("Could not find .netrc: $HOME is not set")
-        fp = open(file)
         self.hosts = {}
         self.macros = {}
+        with open(file) as fp:
+            self._parse(file, fp)
+
+    def _parse(self, file, fp):
         lexer = shlex.shlex(fp)
         lexer.wordchars += r"""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"""
         while 1:

Modified: python/branches/py3k/Lib/subprocess.py
==============================================================================
--- python/branches/py3k/Lib/subprocess.py	(original)
+++ python/branches/py3k/Lib/subprocess.py	Fri Oct 26 06:29:23 2007
@@ -809,6 +809,8 @@
 
             if self.stdin:
                 if input is not None:
+                    if isinstance(input, str):
+                        input = input.encode()
                     self.stdin.write(input)
                 self.stdin.close()
 

Modified: python/branches/py3k/Lib/test/regrtest.py
==============================================================================
--- python/branches/py3k/Lib/test/regrtest.py	(original)
+++ python/branches/py3k/Lib/test/regrtest.py	Fri Oct 26 06:29:23 2007
@@ -885,6 +885,7 @@
         test_pwd
         test_resource
         test_signal
+        test_syslog
         test_threadsignals
         test_wait3
         test_wait4

Modified: python/branches/py3k/Lib/test/test_mailbox.py
==============================================================================
--- python/branches/py3k/Lib/test/test_mailbox.py	(original)
+++ python/branches/py3k/Lib/test/test_mailbox.py	Fri Oct 26 06:29:23 2007
@@ -58,6 +58,7 @@
         self._box = self._factory(self._path)
 
     def tearDown(self):
+        self._box.close()
         self._delete_recursively(self._path)
 
     def test_add(self):
@@ -390,12 +391,14 @@
         self._box.add(contents[0])
         self._box.add(contents[1])
         self._box.add(contents[2])
+        oldbox = self._box
         method()
         self._box = self._factory(self._path)
         keys = self._box.keys()
         self.assertEqual(len(keys), 3)
         for key in keys:
             self.assert_(self._box.get_string(key) in contents)
+        oldbox.close()
 
     def test_dump_message(self):
         # Write message representations to disk
@@ -403,7 +406,7 @@
                       _sample_message, io.StringIO(_sample_message)):
             output = io.StringIO()
             self._box._dump_message(input, output)
-            self.assert_(output.getvalue() ==
+            self.assertEqual(output.getvalue(),
                          _sample_message.replace('\n', os.linesep))
         output = io.StringIO()
         self.assertRaises(TypeError,
@@ -694,6 +697,7 @@
 class _TestMboxMMDF(TestMailbox):
 
     def tearDown(self):
+        self._box.close()
         self._delete_recursively(self._path)
         for lock_remnant in glob.glob(self._path + '.*'):
             test_support.unlink(lock_remnant)
@@ -916,6 +920,7 @@
     _factory = lambda self, path, factory=None: mailbox.Babyl(path, factory)
 
     def tearDown(self):
+        self._box.close()
         self._delete_recursively(self._path)
         for lock_remnant in glob.glob(self._path + '.*'):
             test_support.unlink(lock_remnant)

Modified: python/branches/py3k/Lib/test/test_netrc.py
==============================================================================
--- python/branches/py3k/Lib/test/test_netrc.py	(original)
+++ python/branches/py3k/Lib/test/test_netrc.py	Fri Oct 26 06:29:23 2007
@@ -21,25 +21,24 @@
 
 class NetrcTestCase(unittest.TestCase):
 
-    def setUp (self):
+    def setUp(self):
         mode = 'w'
         if sys.platform not in ['cygwin']:
             mode += 't'
         fp = open(temp_filename, mode)
         fp.write(TEST_NETRC)
         fp.close()
-        self.netrc = netrc.netrc(temp_filename)
 
-    def tearDown (self):
-        del self.netrc
+    def tearDown(self):
         os.unlink(temp_filename)
 
     def test_case_1(self):
-        self.assert_(self.netrc.macros == {'macro1':['line1\n', 'line2\n'],
+        nrc = netrc.netrc(temp_filename)
+        self.assert_(nrc.macros == {'macro1':['line1\n', 'line2\n'],
                                            'macro2':['line3\n', 'line4\n']}
                                            )
-        self.assert_(self.netrc.hosts['foo'] == ('log1', 'acct1', 'pass1'))
-        self.assert_(self.netrc.hosts['default'] == ('log2', None, 'pass2'))
+        self.assert_(nrc.hosts['foo'] == ('log1', 'acct1', 'pass1'))
+        self.assert_(nrc.hosts['default'] == ('log2', None, 'pass2'))
 
 def test_main():
     test_support.run_unittest(NetrcTestCase)

Modified: python/branches/py3k/Lib/test/test_pep277.py
==============================================================================
--- python/branches/py3k/Lib/test/test_pep277.py	(original)
+++ python/branches/py3k/Lib/test/test_pep277.py	Fri Oct 26 06:29:23 2007
@@ -36,7 +36,7 @@
         except OSError:
             pass
         for name in self.files:
-            f = open(name, 'w')
+            f = open(name, 'wb')
             f.write((name+'\n').encode("utf-8"))
             f.close()
             os.stat(name)
@@ -71,7 +71,7 @@
 
     def test_open(self):
         for name in self.files:
-            f = open(name, 'w')
+            f = open(name, 'wb')
             f.write((name+'\n').encode("utf-8"))
             f.close()
             os.stat(name)
@@ -80,7 +80,7 @@
         f1 = os.listdir(test_support.TESTFN)
         # Printing f1 is not appropriate, as specific filenames
         # returned depend on the local encoding
-        f2 = os.listdir(str(test_support.TESTFN,
+        f2 = os.listdir(str(test_support.TESTFN.encode("utf-8"),
                                 sys.getfilesystemencoding()))
         f2.sort()
         print(f2)
@@ -96,7 +96,7 @@
         oldwd = os.getcwd()
         os.mkdir(dirname)
         os.chdir(dirname)
-        f = open(filename, 'w')
+        f = open(filename, 'wb')
         f.write((filename + '\n').encode("utf-8"))
         f.close()
         print(repr(filename))

Modified: python/branches/py3k/Lib/test/test_subprocess.py
==============================================================================
--- python/branches/py3k/Lib/test/test_subprocess.py	(original)
+++ python/branches/py3k/Lib/test/test_subprocess.py	Fri Oct 26 06:29:23 2007
@@ -630,7 +630,7 @@
             p = subprocess.Popen(["set"], shell=1,
                                  stdout=subprocess.PIPE,
                                  env=newenv)
-            self.assertNotEqual(p.stdout.read().find("physalis"), -1)
+            self.assertNotEqual(p.stdout.read().find(b"physalis"), -1)
 
         def test_shell_string(self):
             # Run command through the shell (string)
@@ -639,7 +639,7 @@
             p = subprocess.Popen("set", shell=1,
                                  stdout=subprocess.PIPE,
                                  env=newenv)
-            self.assertNotEqual(p.stdout.read().find("physalis"), -1)
+            self.assertNotEqual(p.stdout.read().find(b"physalis"), -1)
 
         def test_call_string(self):
             # call() function with string argument on Windows


More information about the Python-3000-checkins mailing list