| Index: recipe_engine/third_party/setuptools/tests/test_markerlib.py
|
| diff --git a/recipe_engine/third_party/setuptools/tests/test_markerlib.py b/recipe_engine/third_party/setuptools/tests/test_markerlib.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..dae71cba468d6876772acb778693bf911b4c2dfe
|
| --- /dev/null
|
| +++ b/recipe_engine/third_party/setuptools/tests/test_markerlib.py
|
| @@ -0,0 +1,68 @@
|
| +import os
|
| +import unittest
|
| +from setuptools.tests.py26compat import skipIf
|
| +
|
| +try:
|
| + import ast
|
| +except ImportError:
|
| + pass
|
| +
|
| +class TestMarkerlib(unittest.TestCase):
|
| +
|
| + @skipIf('ast' not in globals(),
|
| + "ast not available (Python < 2.6?)")
|
| + def test_markers(self):
|
| + from _markerlib import interpret, default_environment, compile
|
| +
|
| + os_name = os.name
|
| +
|
| + self.assertTrue(interpret(""))
|
| +
|
| + self.assertTrue(interpret("os.name != 'buuuu'"))
|
| + 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("'%s' in os_name" % os_name))
|
| + self.assertTrue(interpret("'buuuu' not in os.name"))
|
| +
|
| + self.assertFalse(interpret("os.name == 'buuuu'"))
|
| + self.assertFalse(interpret("os_name == 'buuuu'"))
|
| + self.assertFalse(interpret("python_version < '1.0'"))
|
| + self.assertFalse(interpret("python_version > '5.0'"))
|
| + self.assertFalse(interpret("python_version >= '5.0'"))
|
| + self.assertFalse(interpret("python_version <= '1.0'"))
|
| + self.assertFalse(interpret("'%s' not in os.name" % os_name))
|
| + self.assertFalse(interpret("'buuuu' in os.name and python_version >= '5.0'"))
|
| + self.assertFalse(interpret("'buuuu' in os_name and python_version >= '5.0'"))
|
| +
|
| + environment = default_environment()
|
| + environment['extra'] = 'test'
|
| + self.assertTrue(interpret("extra == 'test'", environment))
|
| + self.assertFalse(interpret("extra == 'doc'", environment))
|
| +
|
| + def raises_nameError():
|
| + try:
|
| + interpret("python.version == '42'")
|
| + except NameError:
|
| + pass
|
| + else:
|
| + raise Exception("Expected NameError")
|
| +
|
| + raises_nameError()
|
| +
|
| + def raises_syntaxError():
|
| + try:
|
| + interpret("(x for x in (4,))")
|
| + except SyntaxError:
|
| + pass
|
| + else:
|
| + raise Exception("Expected SyntaxError")
|
| +
|
| + raises_syntaxError()
|
| +
|
| + statement = "python_version == '5'"
|
| + self.assertEqual(compile(statement).__doc__, statement)
|
| +
|
|
|