commit
8fde2f98ae
|
@ -25,6 +25,8 @@ syntax:glob
|
||||||
doc/*/_build
|
doc/*/_build
|
||||||
build/
|
build/
|
||||||
dist/
|
dist/
|
||||||
|
testing/cx_freeze/build
|
||||||
|
testing/cx_freeze/cx_freeze_source
|
||||||
*.egg-info
|
*.egg-info
|
||||||
issue/
|
issue/
|
||||||
env/
|
env/
|
||||||
|
|
|
@ -53,6 +53,8 @@
|
||||||
- fixed regression to 2.6.4 which surfaced e.g. in lost stdout capture printing
|
- fixed regression to 2.6.4 which surfaced e.g. in lost stdout capture printing
|
||||||
when tests raised SystemExit. Thanks Holger Krekel.
|
when tests raised SystemExit. Thanks Holger Krekel.
|
||||||
|
|
||||||
|
- reintroduced _pytest fixture of the pytester plugin which is used
|
||||||
|
at least by pytest-xdist.
|
||||||
|
|
||||||
2.7.0 (compared to 2.6.4)
|
2.7.0 (compared to 2.6.4)
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
.. image:: https://drone.io/bitbucket.org/pytest-dev/pytest/status.png
|
|
||||||
:target: https://drone.io/bitbucket.org/pytest-dev/pytest/latest
|
|
||||||
.. image:: https://pypip.in/v/pytest/badge.png
|
.. image:: https://pypip.in/v/pytest/badge.png
|
||||||
:target: https://pypi.python.org/pypi/pytest
|
:target: https://pypi.python.org/pypi/pytest
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,24 @@ from _pytest.core import HookCaller, add_method_wrapper
|
||||||
|
|
||||||
from _pytest.main import Session, EXIT_OK
|
from _pytest.main import Session, EXIT_OK
|
||||||
|
|
||||||
|
# used at least by pytest-xdist plugin
|
||||||
|
@pytest.fixture
|
||||||
|
def _pytest(request):
|
||||||
|
""" Return a helper which offers a gethookrecorder(hook)
|
||||||
|
method which returns a HookRecorder instance which helps
|
||||||
|
to make assertions about called hooks.
|
||||||
|
"""
|
||||||
|
return PytestArg(request)
|
||||||
|
|
||||||
|
class PytestArg:
|
||||||
|
def __init__(self, request):
|
||||||
|
self.request = request
|
||||||
|
|
||||||
|
def gethookrecorder(self, hook):
|
||||||
|
hookrecorder = HookRecorder(hook._pm)
|
||||||
|
self.request.addfinalizer(hookrecorder.finish_recording)
|
||||||
|
return hookrecorder
|
||||||
|
|
||||||
|
|
||||||
def get_public_names(l):
|
def get_public_names(l):
|
||||||
"""Only return names from iterator l without a leading underscore."""
|
"""Only return names from iterator l without a leading underscore."""
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
"""
|
||||||
|
Installs cx_freeze from source, but first patching
|
||||||
|
setup.py as described here:
|
||||||
|
|
||||||
|
http://stackoverflow.com/questions/25107697/compiling-cx-freeze-under-ubuntu
|
||||||
|
"""
|
||||||
|
import glob
|
||||||
|
import shutil
|
||||||
|
import tarfile
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import platform
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
if 'ubuntu' not in platform.version().lower():
|
||||||
|
|
||||||
|
print('Not Ubuntu, installing using pip. (platform.version() is %r)' %
|
||||||
|
platform.version())
|
||||||
|
res = os.system('pip install cx_freeze')
|
||||||
|
if res != 0:
|
||||||
|
sys.exit(res)
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
if os.path.isdir('cx_freeze_source'):
|
||||||
|
shutil.rmtree('cx_freeze_source')
|
||||||
|
os.mkdir('cx_freeze_source')
|
||||||
|
|
||||||
|
res = os.system('pip install --download cx_freeze_source --no-use-wheel '
|
||||||
|
'cx_freeze')
|
||||||
|
if res != 0:
|
||||||
|
sys.exit(res)
|
||||||
|
|
||||||
|
packages = glob.glob('cx_freeze_source/*.tar.gz')
|
||||||
|
assert len(packages) == 1
|
||||||
|
tar_filename = packages[0]
|
||||||
|
|
||||||
|
tar_file = tarfile.open(tar_filename)
|
||||||
|
try:
|
||||||
|
tar_file.extractall(path='cx_freeze_source')
|
||||||
|
finally:
|
||||||
|
tar_file.close()
|
||||||
|
|
||||||
|
basename = os.path.basename(tar_filename).replace('.tar.gz', '')
|
||||||
|
setup_py_filename = 'cx_freeze_source/%s/setup.py' % basename
|
||||||
|
with open(setup_py_filename) as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
|
||||||
|
line_to_patch = 'if not vars.get("Py_ENABLE_SHARED", 0):'
|
||||||
|
for index, line in enumerate(lines):
|
||||||
|
if line_to_patch in line:
|
||||||
|
indent = line[:line.index(line_to_patch)]
|
||||||
|
lines[index] = indent + 'if True:\n'
|
||||||
|
print('Patched line %d' % (index + 1))
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
sys.exit('Could not find line in setup.py to patch!')
|
||||||
|
|
||||||
|
with open(setup_py_filename, 'w') as f:
|
||||||
|
f.writelines(lines)
|
||||||
|
|
||||||
|
os.chdir('cx_freeze_source/%s' % basename)
|
||||||
|
res = os.system('python setup.py install')
|
||||||
|
if res != 0:
|
||||||
|
sys.exit(res)
|
||||||
|
|
||||||
|
sys.exit(0)
|
2
tox.ini
2
tox.ini
|
@ -125,10 +125,10 @@ commands=
|
||||||
-rfsxX --junitxml={envlogdir}/junit-{envname}2.xml []
|
-rfsxX --junitxml={envlogdir}/junit-{envname}2.xml []
|
||||||
|
|
||||||
[testenv:py27-cxfreeze]
|
[testenv:py27-cxfreeze]
|
||||||
deps=cx_freeze
|
|
||||||
changedir=testing/cx_freeze
|
changedir=testing/cx_freeze
|
||||||
basepython=python2.7
|
basepython=python2.7
|
||||||
commands=
|
commands=
|
||||||
|
{envpython} install_cx_freeze.py
|
||||||
{envpython} runtests_setup.py build --build-exe build
|
{envpython} runtests_setup.py build --build-exe build
|
||||||
{envpython} tox_run.py
|
{envpython} tox_run.py
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue