summaryrefslogtreecommitdiff
path: root/distutils2/tests
diff options
context:
space:
mode:
authorTarek Ziade <tarek@ziade.org>2011-01-29 15:18:54 +0100
committerTarek Ziade <tarek@ziade.org>2011-01-29 15:18:54 +0100
commit495a24cc296db63e3e2466871aef278f630b7bf7 (patch)
tree77e68a2576e4ba576000f1678c67afad728a0c21 /distutils2/tests
parent7eaa6dfc487f946a775c5e72d7f7231420e76b23 (diff)
downloaddisutils2-495a24cc296db63e3e2466871aef278f630b7bf7.tar.gz
split the micro-language for PEP 345 in markers
Diffstat (limited to 'distutils2/tests')
-rw-r--r--distutils2/tests/test_markers.py69
-rw-r--r--distutils2/tests/test_metadata.py53
2 files changed, 71 insertions, 51 deletions
diff --git a/distutils2/tests/test_markers.py b/distutils2/tests/test_markers.py
new file mode 100644
index 0000000..eb1007c
--- /dev/null
+++ b/distutils2/tests/test_markers.py
@@ -0,0 +1,69 @@
+"""Tests for distutils.metadata."""
+import os
+import sys
+import platform
+from StringIO import StringIO
+
+from distutils2.markers import interpret
+from distutils2.tests import run_unittest, unittest
+from distutils2.tests.support import LoggingCatcher, WarningsCatcher
+
+
+class MarkersTestCase(LoggingCatcher, WarningsCatcher,
+ unittest.TestCase):
+
+ def test_interpret(self):
+ sys_platform = sys.platform
+ version = sys.version.split()[0]
+ os_name = os.name
+ platform_version = platform.version()
+ platform_machine = platform.machine()
+
+ self.assertTrue(interpret("sys.platform == '%s'" % sys_platform))
+ self.assertTrue(interpret(
+ "sys.platform == '%s' or python_version == '2.4'" % sys_platform))
+ self.assertTrue(interpret(
+ "sys.platform == '%s' and python_full_version == '%s'" %
+ (sys_platform, version)))
+ self.assertTrue(interpret("'%s' == sys.platform" % sys_platform))
+ self.assertTrue(interpret('os.name == "%s"' % os_name))
+ self.assertTrue(interpret(
+ 'platform.version == "%s" and platform.machine == "%s"' %
+ (platform_version, platform_machine)))
+
+ # stuff that need to raise a syntax error
+ ops = ('os.name == os.name', 'os.name == 2', "'2' == '2'",
+ 'okpjonon', '', 'os.name ==', 'python_version == 2.4')
+ for op in ops:
+ self.assertRaises(SyntaxError, interpret, op)
+
+ # combined operations
+ OP = 'os.name == "%s"' % os_name
+ AND = ' and '
+ OR = ' or '
+ self.assertTrue(interpret(OP + AND + OP))
+ self.assertTrue(interpret(OP + AND + OP + AND + OP))
+ self.assertTrue(interpret(OP + OR + OP))
+ self.assertTrue(interpret(OP + OR + OP + OR + OP))
+
+ # other operators
+ self.assertTrue(interpret("os.name != 'buuuu'"))
+ self.assertTrue(interpret("python_version > '1.0'"))
+ self.assertTrue(interpret("python_version < '5.0'"))
+ self.assertTrue(interpret("python_version <= '5.0'"))
+ self.assertTrue(interpret("python_version >= '1.0'"))
+ self.assertTrue(interpret("'%s' in os.name" % os_name))
+ self.assertTrue(interpret("'buuuu' not in os.name"))
+ self.assertTrue(interpret(
+ "'buuuu' not in os.name and '%s' in os.name" % os_name))
+
+ # execution context
+ self.assertTrue(interpret('python_version == "0.1"',
+ {'python_version': '0.1'}))
+
+
+def test_suite():
+ return unittest.makeSuite(MarkersTestCase)
+
+if __name__ == '__main__':
+ run_unittest(test_suite())
diff --git a/distutils2/tests/test_metadata.py b/distutils2/tests/test_metadata.py
index 56b9de1..957b209 100644
--- a/distutils2/tests/test_metadata.py
+++ b/distutils2/tests/test_metadata.py
@@ -1,10 +1,10 @@
-"""Tests for distutils.command.bdist."""
+"""Tests for distutils.metadata."""
import os
import sys
import platform
from StringIO import StringIO
-from distutils2.metadata import (DistributionMetadata, _interpret,
+from distutils2.metadata import (DistributionMetadata,
PKG_INFO_PREFERRED_VERSION)
from distutils2.tests import run_unittest, unittest
from distutils2.tests.support import LoggingCatcher, WarningsCatcher
@@ -46,55 +46,6 @@ class DistributionMetadataTestCase(LoggingCatcher, WarningsCatcher,
self.assertRaises(TypeError, DistributionMetadata,
PKG_INFO, mapping=m, fileobj=fp)
- def test_interpret(self):
- sys_platform = sys.platform
- version = sys.version.split()[0]
- os_name = os.name
- platform_version = platform.version()
- platform_machine = platform.machine()
-
- self.assertTrue(_interpret("sys.platform == '%s'" % sys_platform))
- self.assertTrue(_interpret(
- "sys.platform == '%s' or python_version == '2.4'" % sys_platform))
- self.assertTrue(_interpret(
- "sys.platform == '%s' and python_full_version == '%s'" %
- (sys_platform, version)))
- self.assertTrue(_interpret("'%s' == sys.platform" % sys_platform))
- self.assertTrue(_interpret('os.name == "%s"' % os_name))
- self.assertTrue(_interpret(
- 'platform.version == "%s" and platform.machine == "%s"' %
- (platform_version, platform_machine)))
-
- # stuff that need to raise a syntax error
- ops = ('os.name == os.name', 'os.name == 2', "'2' == '2'",
- 'okpjonon', '', 'os.name ==', 'python_version == 2.4')
- for op in ops:
- self.assertRaises(SyntaxError, _interpret, op)
-
- # combined operations
- OP = 'os.name == "%s"' % os_name
- AND = ' and '
- OR = ' or '
- self.assertTrue(_interpret(OP + AND + OP))
- self.assertTrue(_interpret(OP + AND + OP + AND + OP))
- self.assertTrue(_interpret(OP + OR + OP))
- self.assertTrue(_interpret(OP + OR + OP + OR + OP))
-
- # other operators
- self.assertTrue(_interpret("os.name != 'buuuu'"))
- self.assertTrue(_interpret("python_version > '1.0'"))
- self.assertTrue(_interpret("python_version < '5.0'"))
- self.assertTrue(_interpret("python_version <= '5.0'"))
- self.assertTrue(_interpret("python_version >= '1.0'"))
- self.assertTrue(_interpret("'%s' in os.name" % os_name))
- self.assertTrue(_interpret("'buuuu' not in os.name"))
- self.assertTrue(_interpret(
- "'buuuu' not in os.name and '%s' in os.name" % os_name))
-
- # execution context
- self.assertTrue(_interpret('python_version == "0.1"',
- {'python_version': '0.1'}))
-
def test_metadata_read_write(self):
PKG_INFO = os.path.join(os.path.dirname(__file__), 'PKG-INFO')
metadata = DistributionMetadata(PKG_INFO)