first implementation and tox environment for cx-freeze support

--HG--
branch : cx_freeze-support
This commit is contained in:
Bruno Oliveira 2014-07-30 19:16:51 -03:00
parent bcdc3d0154
commit 990e7bf3b9
8 changed files with 101 additions and 0 deletions

View File

@ -0,0 +1,52 @@
def includes():
return [
'_pytest.assertion.newinterpret',
'_pytest.assertion.oldinterpret',
'_pytest.assertion.reinterpret',
'_pytest.assertion.rewrite',
'_pytest.assertion.util',
'_pytest._argcomplete',
'_pytest.doctest',
'_pytest.pdb',
'_pytest.unittest',
'_pytest.capture',
'_pytest.config',
'_pytest.core',
'_pytest.genscript',
'_pytest.helpconfig',
'_pytest.hookspec',
'_pytest.junitxml',
'_pytest.main',
'_pytest.mark',
'_pytest.monkeypatch',
'_pytest.nose',
'_pytest.pastebin',
'_pytest.pytester',
'_pytest.python',
'_pytest.recwarn',
'_pytest.resultlog',
'_pytest.runner',
'_pytest.skipping',
'_pytest.standalonetemplate',
'_pytest.terminal',
'_pytest.tmpdir',
'py._builtin',
'py._path.local',
'py._io.capture',
'py._io.saferepr',
'py._iniconfig',
'py._io.terminalwriter',
'py._xmlgen',
'py._error',
'py._std',
# builtin files imported by pytest using py.std implicit mechanism
'argparse',
'shlex',
'warnings',
'types',
]

View File

@ -13,6 +13,7 @@ if __name__ == '__main__': # if run as a script or by 'python -m pytest'
from _pytest.config import main, UsageError, _preloadplugins, cmdline from _pytest.config import main, UsageError, _preloadplugins, cmdline
from _pytest import __version__ from _pytest import __version__
from _pytest import cx_freeze_support
_preloadplugins() # to populate pytest.* namespace so help(pytest) works _preloadplugins() # to populate pytest.* namespace so help(pytest) works

7
testing/cx_freeze/run.py Normal file
View File

@ -0,0 +1,7 @@
import os
import sys
executable = os.path.join(os.getcwd(), 'build', 'runtests_script')
if sys.platform.startswith('win'):
executable += '.exe'
sys.exit(os.system('%s tests' % executable))

View File

@ -0,0 +1,10 @@
"""
Simple script that actually executes py.test runner when passed "--pytest" as
first argument; in this case, all other arguments are forwarded to pytest's
main().
"""
if __name__ == '__main__':
import sys
import pytest
sys.exit(pytest.main())

View File

@ -0,0 +1,11 @@
from cx_Freeze import setup, Executable
import pytest
setup(
name="runtests",
version="0.1",
description="exemple of how embedding py.test into an executable using cx_freeze",
executables=[Executable("runtests_script.py")],
options={"build_exe": {'includes': pytest.cx_freeze_support.includes()}},
)

View File

@ -0,0 +1,6 @@
Testing doctest::
>>> 1 + 1
2

View File

@ -0,0 +1,6 @@
def test_upper():
assert 'foo'.upper() == 'FOO'
def test_lower():
assert 'FOO'.lower() == 'foo'

View File

@ -123,6 +123,14 @@ commands=
{envpython} {envbindir}/py.test-jython \ {envpython} {envbindir}/py.test-jython \
-rfsxX --junitxml={envlogdir}/junit-{envname}2.xml [] -rfsxX --junitxml={envlogdir}/junit-{envname}2.xml []
[testenv:py27-cxfreeze]
deps=cx_freeze
changedir=testing/cx_freeze
basepython=python2.7
commands=
{envpython} runtests_setup.py build --build-exe build
{envpython} run.py
[pytest] [pytest]
minversion=2.0 minversion=2.0
plugins=pytester plugins=pytester