Support tox and request more warnings:
- make separate tests runner - tests.py; python setup.py test still works - tox.ini with coverage config - -b: issue warnings about comparing bytearray with unicode - export PYTHONWARNINGS=all on stage install
This commit is contained in:
parent
0f8528cc48
commit
e77238fa07
|
@ -15,7 +15,8 @@ addons:
|
||||||
install:
|
install:
|
||||||
- pip install -r requirements.txt
|
- pip install -r requirements.txt
|
||||||
- python setup.py install
|
- python setup.py install
|
||||||
|
- export PYTHONWARNINGS=all
|
||||||
script:
|
script:
|
||||||
- python checkdeps.py
|
- python checkdeps.py
|
||||||
- xvfb-run src/bitmessagemain.py -t
|
- xvfb-run src/bitmessagemain.py -t
|
||||||
- python setup.py test
|
- python -bm tests
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
coverage
|
||||||
python_prctl
|
python_prctl
|
||||||
psutil
|
psutil
|
||||||
pycrypto
|
pycrypto
|
||||||
|
|
11
setup.py
11
setup.py
|
@ -4,7 +4,6 @@ import os
|
||||||
import platform
|
import platform
|
||||||
import shutil
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
|
||||||
|
|
||||||
from setuptools import setup, Extension
|
from setuptools import setup, Extension
|
||||||
from setuptools.command.install import install
|
from setuptools.command.install import install
|
||||||
|
@ -46,14 +45,6 @@ class InstallCmd(install):
|
||||||
return install.run(self)
|
return install.run(self)
|
||||||
|
|
||||||
|
|
||||||
def unittest_discover():
|
|
||||||
"""Explicit test suite creation"""
|
|
||||||
if sys.hexversion >= 0x3000000:
|
|
||||||
from pybitmessage import pathmagic
|
|
||||||
pathmagic.setup()
|
|
||||||
return unittest.TestLoader().discover('pybitmessage.tests')
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
here = os.path.abspath(os.path.dirname(__file__))
|
here = os.path.abspath(os.path.dirname(__file__))
|
||||||
with open(os.path.join(here, 'README.md')) as f:
|
with open(os.path.join(here, 'README.md')) as f:
|
||||||
|
@ -125,7 +116,7 @@ if __name__ == "__main__":
|
||||||
#keywords='',
|
#keywords='',
|
||||||
install_requires=installRequires,
|
install_requires=installRequires,
|
||||||
tests_require=requirements,
|
tests_require=requirements,
|
||||||
test_suite='setup.unittest_discover',
|
test_suite='tests.unittest_discover',
|
||||||
extras_require=EXTRAS_REQUIRE,
|
extras_require=EXTRAS_REQUIRE,
|
||||||
classifiers=[
|
classifiers=[
|
||||||
"License :: OSI Approved :: MIT License"
|
"License :: OSI Approved :: MIT License"
|
||||||
|
|
|
@ -378,11 +378,7 @@ class Main(object):
|
||||||
test_core_result = test_core.run()
|
test_core_result = test_core.run()
|
||||||
self.stop()
|
self.stop()
|
||||||
test_core.cleanup()
|
test_core.cleanup()
|
||||||
sys.exit(
|
sys.exit(not test_core_result.wasSuccessful())
|
||||||
'Core tests failed!'
|
|
||||||
if test_core_result.errors or test_core_result.failures
|
|
||||||
else 0
|
|
||||||
)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def daemonize():
|
def daemonize():
|
||||||
|
|
22
tests.py
Normal file
22
tests.py
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
"""Custom tests runner script for tox and python3"""
|
||||||
|
import random # noseq
|
||||||
|
import sys
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
|
||||||
|
def unittest_discover():
|
||||||
|
"""Explicit test suite creation"""
|
||||||
|
if sys.hexversion >= 0x3000000:
|
||||||
|
from pybitmessage import pathmagic
|
||||||
|
pathmagic.setup()
|
||||||
|
loader = unittest.defaultTestLoader
|
||||||
|
# randomize the order of tests in test cases
|
||||||
|
loader.sortTestMethodsUsing = lambda a, b: random.randint(-1, 1)
|
||||||
|
# pybitmessage symlink may disappear on Windows
|
||||||
|
return loader.discover('src.tests')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
result = unittest.TextTestRunner(verbosity=2).run(unittest_discover())
|
||||||
|
sys.exit(not result.wasSuccessful())
|
34
tox.ini
Normal file
34
tox.ini
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[tox]
|
||||||
|
envlist = reset,py{27,37,38},stats
|
||||||
|
skip_missing_interpreters = true
|
||||||
|
|
||||||
|
[testenv]
|
||||||
|
setenv =
|
||||||
|
BITMESSAGE_HOME = {envtmpdir}
|
||||||
|
PYTHONWARNINGS = all
|
||||||
|
deps = -rrequirements.txt
|
||||||
|
commands =
|
||||||
|
python checkdeps.py
|
||||||
|
coverage run -a src/bitmessagemain.py -t
|
||||||
|
coverage run -a -m tests
|
||||||
|
|
||||||
|
[testenv:reset]
|
||||||
|
commands = coverage erase
|
||||||
|
|
||||||
|
[testenv:stats]
|
||||||
|
commands =
|
||||||
|
coverage report
|
||||||
|
coverage xml
|
||||||
|
|
||||||
|
[coverage:run]
|
||||||
|
source = src
|
||||||
|
omit =
|
||||||
|
*/lib*
|
||||||
|
tests.py
|
||||||
|
*/tests/*
|
||||||
|
src/version.py
|
||||||
|
*/__init__.py
|
||||||
|
src/fallback/umsgpack/*
|
||||||
|
|
||||||
|
[coverage:report]
|
||||||
|
ignore_errors = true
|
Reference in New Issue
Block a user