88 lines
2.0 KiB
Python
88 lines
2.0 KiB
Python
import textwrap
|
|
|
|
from packaging.tests import unittest, support
|
|
from packaging.compat import Mixin2to3
|
|
|
|
|
|
class Mixin2to3TestCase(support.TempdirManager,
|
|
support.LoggingCatcher,
|
|
unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
super(Mixin2to3TestCase, self).setUp()
|
|
self.filename = self.mktempfile().name
|
|
|
|
def check(self, source, wanted, **kwargs):
|
|
source = textwrap.dedent(source)
|
|
with open(self.filename, 'w') as fp:
|
|
fp.write(source)
|
|
|
|
Mixin2to3()._run_2to3(**kwargs)
|
|
|
|
wanted = textwrap.dedent(wanted)
|
|
with open(self.filename) as fp:
|
|
converted = fp.read()
|
|
self.assertMultiLineEqual(converted, wanted)
|
|
|
|
def test_conversion(self):
|
|
# check that code and doctests get converted
|
|
self.check('''\
|
|
"""Example docstring.
|
|
|
|
>>> print test
|
|
test
|
|
|
|
It works.
|
|
"""
|
|
print 'test'
|
|
''',
|
|
'''\
|
|
"""Example docstring.
|
|
|
|
>>> print(test)
|
|
test
|
|
|
|
It works.
|
|
"""
|
|
print('test')
|
|
|
|
''', # 2to3 adds a newline here
|
|
files=[self.filename])
|
|
|
|
def test_doctests_conversion(self):
|
|
# check that doctest files are converted
|
|
self.check('''\
|
|
Welcome to the doc.
|
|
|
|
>>> print test
|
|
test
|
|
''',
|
|
'''\
|
|
Welcome to the doc.
|
|
|
|
>>> print(test)
|
|
test
|
|
|
|
''',
|
|
doctests=[self.filename])
|
|
|
|
def test_additional_fixers(self):
|
|
# make sure the fixers argument works
|
|
self.check("""\
|
|
echo('42')
|
|
echo2('oh no')
|
|
""",
|
|
"""\
|
|
print('42')
|
|
print('oh no')
|
|
""",
|
|
files=[self.filename],
|
|
fixers=['packaging.tests.fixer'])
|
|
|
|
|
|
def test_suite():
|
|
return unittest.makeSuite(Mixin2to3TestCase)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main(defaultTest="test_suite")
|