diff options
author | steven.bethard <devnull@localhost> | 2009-07-12 22:56:24 +0000 |
---|---|---|
committer | steven.bethard <devnull@localhost> | 2009-07-12 22:56:24 +0000 |
commit | e2ee5d493050071f7d853838a62be3e14ec6e4d6 (patch) | |
tree | e57b1a3f3bb6a8087947e7763d1ff64d0f97328b | |
parent | ed87842cef7a4f1ec4719116aa008e9b3658413e (diff) | |
download | argparse-e2ee5d493050071f7d853838a62be3e14ec6e4d6.tar.gz |
Fix tests to write files to temp directory.
Fix bug where some files weren't being closed.
-rw-r--r-- | argparse.py | 10 | ||||
-rw-r--r-- | test/test_argparse.py | 13 |
2 files changed, 15 insertions, 8 deletions
diff --git a/argparse.py b/argparse.py index fd8e4d2..4ae1c89 100644 --- a/argparse.py +++ b/argparse.py @@ -1800,10 +1800,12 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): else:
try:
args_file = open(arg_string[1:])
- arg_strings = args_file.read().splitlines()
- arg_strings = self._read_args_from_files(arg_strings)
- new_arg_strings.extend(arg_strings)
- args_file.close()
+ try:
+ arg_strings = args_file.read().splitlines()
+ arg_strings = self._read_args_from_files(arg_strings)
+ new_arg_strings.extend(arg_strings)
+ finally:
+ args_file.close()
except IOError:
err = _sys.exc_info()[1]
self.error(str(err))
diff --git a/test/test_argparse.py b/test/test_argparse.py index e7ee189..33bec2d 100644 --- a/test/test_argparse.py +++ b/test/test_argparse.py @@ -16,6 +16,7 @@ import codecs
import os
+import shutil
import sys
import textwrap
import tempfile
@@ -65,9 +66,13 @@ class TempDirMixin(object): def tearDown(self):
os.chdir(self.old_dir)
- for filename in os.listdir(self.temp_dir):
- os.remove(os.path.join(self.temp_dir, filename))
- os.rmdir(self.temp_dir)
+ while True:
+ try:
+ shutil.rmtree(self.temp_dir)
+ except WindowsError:
+ continue
+ else:
+ break
class Sig(object):
@@ -1227,7 +1232,7 @@ class TestParserDefault42(ParserTestCase): ]
-class TestArgumentsFromFile(ParserTestCase, TempDirMixin):
+class TestArgumentsFromFile(TempDirMixin, ParserTestCase):
"""Test reading arguments from a file"""
def setUp(self):
|