diff options
author | Victor Stinner <vstinner@redhat.com> | 2018-09-03 21:17:20 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-03 21:17:20 (GMT) |
commit | 65fc98e7b1f62c2e621f04780a3a77c3498cc195 (patch) | |
tree | 48a7f0e2578d1ca9381ac98a3d27e3996e1b6868 | |
parent | 73b00becbdd40f6a80cfa00abf1ae650a2b5e454 (diff) | |
download | cpython-65fc98e7b1f62c2e621f04780a3a77c3498cc195.zip cpython-65fc98e7b1f62c2e621f04780a3a77c3498cc195.tar.gz cpython-65fc98e7b1f62c2e621f04780a3a77c3498cc195.tar.bz2 |
bpo-26901: Fix the Argument Clinic test suite (GH-8879)
* Fix Tools/clinic/clinic_test.py: add missing
FakeClinic.destination_buffers attribute and pass a file argument
to Clinic().
* Rename Tools/clinic/clinic_test.py to Lib/test/test_clinic.py:
add temporary Tools/clinic/ to sys.path to import the clinic
module.
Co-Authored-By: Pablo Galindo <pablogsal@gmail.com>
-rw-r--r-- | Lib/test/test_clinic.py (renamed from Tools/clinic/clinic_test.py) | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/Tools/clinic/clinic_test.py b/Lib/test/test_clinic.py index a9479a6..ba4ae34 100644 --- a/Tools/clinic/clinic_test.py +++ b/Lib/test/test_clinic.py @@ -1,16 +1,26 @@ # Argument Clinic # Copyright 2012-2013 by Larry Hastings. # Licensed to the PSF under a contributor agreement. -# -import clinic -from clinic import DSLParser +from test import support +from unittest import TestCase import collections import inspect -from test import support +import os.path import sys import unittest -from unittest import TestCase + + +clinic_path = os.path.join(os.path.dirname(__file__), '..', '..', 'Tools', 'clinic') +clinic_path = os.path.normpath(clinic_path) +if not os.path.exists(clinic_path): + raise unittest.SkipTest(f'{clinic_path!r} path does not exist') +sys.path.append(clinic_path) +try: + import clinic + from clinic import DSLParser +finally: + del sys.path[-1] class FakeConverter: @@ -35,7 +45,7 @@ class FakeConvertersDict: return self.used_converters.setdefault(name, FakeConverterFactory(name)) clinic.Clinic.presets_text = '' -c = clinic.Clinic(language='C') +c = clinic.Clinic(language='C', filename = "file") class FakeClinic: def __init__(self): @@ -43,6 +53,7 @@ class FakeClinic: self.legacy_converters = FakeConvertersDict() self.language = clinic.CLanguage(None) self.filename = None + self.destination_buffers = {} self.block_parser = clinic.BlockParser('', self.language) self.modules = collections.OrderedDict() self.classes = collections.OrderedDict() @@ -93,7 +104,7 @@ class ClinicWholeFileTest(TestCase): # so it would spit out an end line for you. # and since you really already had one, # the last line of the block got corrupted. - c = clinic.Clinic(clinic.CLanguage(None)) + c = clinic.Clinic(clinic.CLanguage(None), filename="file") raw = "/*[clinic]\nfoo\n[clinic]*/" cooked = c.parse(raw).splitlines() end_line = cooked[2].rstrip() @@ -252,7 +263,7 @@ xyz def _test_clinic(self, input, output): language = clinic.CLanguage(None) - c = clinic.Clinic(language) + c = clinic.Clinic(language, filename="file") c.parsers['inert'] = InertParser(c) c.parsers['copy'] = CopyParser(c) computed = c.parse(input) |