diff options
author | Neal Norwitz <nnorwitz@gmail.com> | 2005-10-03 00:54:56 (GMT) |
---|---|---|
committer | Neal Norwitz <nnorwitz@gmail.com> | 2005-10-03 00:54:56 (GMT) |
commit | 11bd11922657f582ee05f1d3cefe32c3a9e51cb7 (patch) | |
tree | 4dfa13e8f81174dbd90bf28a44a5cc1b0c611685 /Lib/test/test_cmd_line.py | |
parent | d157b1d237776f0ee044b97b19b1d803a353f096 (diff) | |
download | cpython-11bd11922657f582ee05f1d3cefe32c3a9e51cb7.zip cpython-11bd11922657f582ee05f1d3cefe32c3a9e51cb7.tar.gz cpython-11bd11922657f582ee05f1d3cefe32c3a9e51cb7.tar.bz2 |
SF bug #887946, segfault if redirecting directory
Also provide a warning if a directory is passed on the command line.
Add minimal command line test.
Will backport.
Diffstat (limited to 'Lib/test/test_cmd_line.py')
-rw-r--r-- | Lib/test/test_cmd_line.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py new file mode 100644 index 0000000..fc0c2d2 --- /dev/null +++ b/Lib/test/test_cmd_line.py @@ -0,0 +1,50 @@ + +import test.test_support, unittest +import sys +import popen2 + +class CmdLineTest(unittest.TestCase): + def start_python(self, cmd_line): + outfp, infp = popen2.popen4('%s %s' % (sys.executable, cmd_line)) + infp.close() + data = outfp.read() + outfp.close() + return data + + def test_directories(self): + self.assertTrue('is a directory' in self.start_python('.')) + self.assertTrue('is a directory' in self.start_python('< .')) + + def verify_valid_flag(self, cmd_line): + data = self.start_python(cmd_line) + self.assertTrue(data.endswith('\n')) + self.assertTrue('Traceback' not in data) + + def test_environment(self): + self.verify_valid_flag('-E') + + def test_optimize(self): + self.verify_valid_flag('-O') + self.verify_valid_flag('-OO') + + def test_q(self): + self.verify_valid_flag('-Qold') + self.verify_valid_flag('-Qnew') + self.verify_valid_flag('-Qwarn') + self.verify_valid_flag('-Qwarnall') + + def test_site_flag(self): + self.verify_valid_flag('-S') + + def test_usage(self): + self.assertTrue('usage' in self.start_python('-h')) + + def test_version(self): + version = 'Python %d.%d' % sys.version_info[:2] + self.assertTrue(self.start_python('-V').startswith(version)) + +def test_main(): + test.test_support.run_unittest(CmdLineTest) + +if __name__ == "__main__": + test_main() |