diff options
Diffstat (limited to 'Lib')
-rwxr-xr-x | Lib/mailbox.py | 12 | ||||
-rw-r--r-- | Lib/pipes.py | 3 | ||||
-rw-r--r-- | Lib/test/test_descr.py | 9 | ||||
-rw-r--r-- | Lib/test/test_inspect.py | 12 | ||||
-rw-r--r-- | Lib/test/test_mailbox.py | 7 | ||||
-rw-r--r-- | Lib/test/test_pipes.py | 2 |
6 files changed, 29 insertions, 16 deletions
diff --git a/Lib/mailbox.py b/Lib/mailbox.py index c2c9b5c..e6f1735 100755 --- a/Lib/mailbox.py +++ b/Lib/mailbox.py @@ -882,17 +882,9 @@ class MH(Mailbox): raise KeyError('No message with key: %s' % key) else: raise - try: - if self._locked: - _lock_file(f) - try: - f.close() - os.remove(os.path.join(self._path, str(key))) - finally: - if self._locked: - _unlock_file(f) - finally: + else: f.close() + os.remove(path) def __setitem__(self, key, message): """Replace the keyed message; raise KeyError if it doesn't exist.""" diff --git a/Lib/pipes.py b/Lib/pipes.py index 6a473ae..deab815 100644 --- a/Lib/pipes.py +++ b/Lib/pipes.py @@ -253,10 +253,13 @@ _safechars = string.ascii_letters + string.digits + '!@%_-+=:,./' # Safe unquote _funnychars = '"`$\\' # Unsafe inside "double quotes" def quote(file): + ''' return a shell-escaped version of the file string ''' for c in file: if c not in _safechars: break else: + if not file: + return "''" return file if '\'' not in file: return '\'' + file + '\'' diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index 011cb6d..408f72b 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -4164,6 +4164,15 @@ order (MRO) for bases """ x.a = 42 self.assertEqual(x.a, 42) + # Also check type_getattro for correctness. + class Meta(type): + pass + class X(object): + __metaclass__ = Meta + X.a = 42 + Meta.a = Descr("a") + self.assertEqual(X.a, 42) + def test_getattr_hooks(self): # issue 4230 diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 35fd775..1daab64 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -166,12 +166,12 @@ class TestInterpreterStack(IsTestBase): def test_trace(self): self.assertEqual(len(git.tr), 3) - self.assertEqual(revise(*git.tr[0][1:]), - (modfile, 43, 'argue', [' spam(a, b, c)\n'], 0)) - self.assertEqual(revise(*git.tr[1][1:]), - (modfile, 9, 'spam', [' eggs(b + d, c + f)\n'], 0)) - self.assertEqual(revise(*git.tr[2][1:]), - (modfile, 18, 'eggs', [' q = y / 0\n'], 0)) + self.assertEqual(git.tr[0][1:], (modfile, 43, 'argue', + [' spam(a, b, c)\n'], 0)) + self.assertEqual(git.tr[1][1:], (modfile, 9, 'spam', + [' eggs(b + d, c + f)\n'], 0)) + self.assertEqual(git.tr[2][1:], (modfile, 18, 'eggs', + [' q = y / 0\n'], 0)) def test_frame(self): args, varargs, varkw, locals = inspect.getargvalues(mod.fr) diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py index 83f34c7..73ee69f 100644 --- a/Lib/test/test_mailbox.py +++ b/Lib/test/test_mailbox.py @@ -968,6 +968,13 @@ class TestMH(TestMailbox): key0 = self._box.add(msg0) refmsg0 = self._box.get_message(key0) + def test_issue7627(self): + msg0 = mailbox.MHMessage(self._template % 0) + key0 = self._box.add(msg0) + self._box.lock() + self._box.remove(key0) + self._box.unlock() + def test_pack(self): # Pack the contents of the mailbox msg0 = mailbox.MHMessage(self._template % 0) diff --git a/Lib/test/test_pipes.py b/Lib/test/test_pipes.py index 7b78097..9ce137e 100644 --- a/Lib/test/test_pipes.py +++ b/Lib/test/test_pipes.py @@ -82,6 +82,8 @@ class SimplePipeTests(unittest.TestCase): self.assertEqual(pipes.quote("test%s'name'" % u), '"test\\%s\'name\'"' % u) + self.assertEqual(pipes.quote(''), "''") + def testRepr(self): t = pipes.Template() self.assertEqual(repr(t), "<Template instance, steps=[]>") |