[Python-checkins] distutils2: now test_conversion will try to convert files from conversions/XX_before.py and

tarek.ziade python-checkins at python.org
Wed May 12 12:39:57 CEST 2010


tarek.ziade pushed d090528dd899 to distutils2:

http://hg.python.org/distutils2/rev/d090528dd899
changeset:   135:d090528dd899
tag:         tip
user:        Tarek Ziade <tarek at ziade.org>
date:        Wed May 12 12:39:46 2010 +0200
summary:     now test_conversion will try to convert files from conversions/XX_before.py and assert the result is conversions/XX_after.py. This will make it easier to add more refactoring use cases.
files:       src/distutils2/tests/conversions/01_after.py, src/distutils2/tests/conversions/01_before.py, src/distutils2/tests/test_converter.py

diff --git a/src/distutils2/tests/conversions/01_after.py b/src/distutils2/tests/conversions/01_after.py
new file mode 100644
--- /dev/null
+++ b/src/distutils2/tests/conversions/01_after.py
@@ -0,0 +1,4 @@
+from distutils2.core import setup
+
+setup(name='Foo')
+
diff --git a/src/distutils2/tests/conversions/01_before.py b/src/distutils2/tests/conversions/01_before.py
new file mode 100644
--- /dev/null
+++ b/src/distutils2/tests/conversions/01_before.py
@@ -0,0 +1,4 @@
+from distutils.core import setup
+
+setup(name='Foo')
+
diff --git a/src/distutils2/tests/test_converter.py b/src/distutils2/tests/test_converter.py
--- a/src/distutils2/tests/test_converter.py
+++ b/src/distutils2/tests/test_converter.py
@@ -1,5 +1,9 @@
 """Tests for distutils.converter."""
+import os
 import unittest2
+
+_CURDIR = os.path.dirname(__file__)
+
 from distutils2.converter import DistutilsRefactoringTool
 
 _ORIGINAL = """\
@@ -13,13 +17,32 @@
 
 setup(name='Foo')
 """
+
+def _read_file(path):
+    # yes, distutils2 is 2.4 compatible, so, no with...
+    f = open(path)
+    try:
+        return f.read()
+    finally:
+        f.close()
+
+
 class ConverterTestCase(unittest2.TestCase):
 
-    def test_import(self):
-        # simplest case: renaming distutils import in setup.py
+
+    def test_conversions(self):
+        # for all XX_before in the conversions/ dir
+        # we run the refactoring tool
         ref = DistutilsRefactoringTool()
-        res = ref.refactor_string(_ORIGINAL, 'setup.py')
-        self.assertEquals(str(res), _WANTED)
+        convdir = os.path.join(_CURDIR, 'conversions')
+        for file_ in os.listdir(convdir):
+            if 'after' in file_ or not file_.endswith('py'):
+                continue
+            original = _read_file(os.path.join(convdir, file_))
+            wanted = file_.replace('before', 'after')
+            wanted = _read_file(os.path.join(convdir, wanted))
+            res = ref.refactor_string(original, 'setup.py')
+            self.assertEquals(str(res), wanted)
 
 def test_suite():
     return unittest2.makeSuite(ConverterTestCase)

--
Repository URL: http://hg.python.org/distutils2


More information about the Python-checkins mailing list