From 1abd708681d9425b113366ac3f3d734c2904b250 Mon Sep 17 00:00:00 2001 From: Larry Hastings Date: Thu, 16 Jan 2014 14:15:03 -0800 Subject: Issue #20226: Added tests for new features and regressions. --- Lib/test/test_pydoc.py | 5 +++++ Tools/clinic/clinic_test.py | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py index 1025f5a..43548af 100644 --- a/Lib/test/test_pydoc.py +++ b/Lib/test/test_pydoc.py @@ -689,6 +689,11 @@ class TestDescriptions(unittest.TestCase): self.assertIsNone(pydoc.locate(name)) self.assertRaises(ImportError, pydoc.render_doc, name) + # test producing signatures from builtins + stat_sig = pydoc.render_doc(os.stat) + self.assertEqual(pydoc.plain(stat_sig).splitlines()[2], + 'stat(path, *, dir_fd=None, follow_symlinks=True)') + @unittest.skipUnless(threading, 'Threading required for this test.') class PydocServerTest(unittest.TestCase): diff --git a/Tools/clinic/clinic_test.py b/Tools/clinic/clinic_test.py index 7de5429..6472527 100644 --- a/Tools/clinic/clinic_test.py +++ b/Tools/clinic/clinic_test.py @@ -9,6 +9,7 @@ from clinic import DSLParser import collections import inspect from test import support +import sys import unittest from unittest import TestCase @@ -277,6 +278,20 @@ class ClinicParserTest(TestCase): p = function.parameters['follow_symlinks'] self.assertEqual(True, p.default) + def test_param_with_continuations(self): + function = self.parse_function("module os\nos.access\n follow_symlinks: \\\n bool \\\n =\\\n True") + p = function.parameters['follow_symlinks'] + self.assertEqual(True, p.default) + + def test_param_default_expression(self): + function = self.parse_function("module os\nos.access\n follow_symlinks: int(c_default='MAXSIZE') = sys.maxsize") + p = function.parameters['follow_symlinks'] + self.assertEqual(sys.maxsize, p.default) + self.assertEqual("MAXSIZE", p.converter.c_default) + + s = self.parse_function_should_fail("module os\nos.access\n follow_symlinks: int = sys.maxsize") + self.assertEqual(s, "Error on line 0:\nWhen you specify a named constant ('sys.maxsize') as your default value,\nyou MUST specify a valid c_default.\n") + def test_param_no_docstring(self): function = self.parse_function(""" module os -- cgit v0.12