summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2018-09-03 21:17:20 (GMT)
committerGitHub <noreply@github.com>2018-09-03 21:17:20 (GMT)
commit65fc98e7b1f62c2e621f04780a3a77c3498cc195 (patch)
tree48a7f0e2578d1ca9381ac98a3d27e3996e1b6868
parent73b00becbdd40f6a80cfa00abf1ae650a2b5e454 (diff)
downloadcpython-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)