123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import os
- import pytest
- class TestMarkerlib:
- @pytest.mark.importorskip('ast')
- def test_markers(self):
- from _markerlib import interpret, default_environment, compile
- os_name = os.name
- assert interpret("")
- assert interpret("os.name != 'buuuu'")
- assert interpret("os_name != 'buuuu'")
- assert interpret("python_version > '1.0'")
- assert interpret("python_version < '5.0'")
- assert interpret("python_version <= '5.0'")
- assert interpret("python_version >= '1.0'")
- assert interpret("'%s' in os.name" % os_name)
- assert interpret("'%s' in os_name" % os_name)
- assert interpret("'buuuu' not in os.name")
- assert not interpret("os.name == 'buuuu'")
- assert not interpret("os_name == 'buuuu'")
- assert not interpret("python_version < '1.0'")
- assert not interpret("python_version > '5.0'")
- assert not interpret("python_version >= '5.0'")
- assert not interpret("python_version <= '1.0'")
- assert not interpret("'%s' not in os.name" % os_name)
- assert not interpret("'buuuu' in os.name and python_version >= '5.0'")
- assert not interpret("'buuuu' in os_name and python_version >= '5.0'")
- environment = default_environment()
- environment['extra'] = 'test'
- assert interpret("extra == 'test'", environment)
- assert not 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'"
- assert compile(statement).__doc__ == statement
|