Merge pull request #960 from noirbizarre/tox
Tox support for cross-versions testing
This commit is contained in:
commit
42ba4a5c56
30
.travis.yml
30
.travis.yml
@ -8,20 +8,11 @@ python:
|
|||||||
- pypy
|
- pypy
|
||||||
- pypy3
|
- pypy3
|
||||||
env:
|
env:
|
||||||
- PYMONGO=2.7.2
|
- PYMONGO=2.7
|
||||||
- PYMONGO=2.8
|
- PYMONGO=2.8
|
||||||
|
# - PYMONGO=3.0
|
||||||
|
# - PYMONGO=dev
|
||||||
matrix:
|
matrix:
|
||||||
exclude:
|
|
||||||
- python: '2.6'
|
|
||||||
env: PYMONGO=2.7.2
|
|
||||||
- python: '2.6'
|
|
||||||
env: PYMONGO=2.8
|
|
||||||
- python: '2.6'
|
|
||||||
env: PYMONGO=2.7.2
|
|
||||||
- python: '2.6'
|
|
||||||
env: PYMONGO=2.8
|
|
||||||
allow_failures:
|
|
||||||
- python: pypy3
|
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
before_install:
|
before_install:
|
||||||
- travis_retry sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
|
- travis_retry sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
|
||||||
@ -33,19 +24,10 @@ install:
|
|||||||
- sudo apt-get install python-dev python3-dev libopenjpeg-dev zlib1g-dev libjpeg-turbo8-dev
|
- sudo apt-get install python-dev python3-dev libopenjpeg-dev zlib1g-dev libjpeg-turbo8-dev
|
||||||
libtiff4-dev libjpeg8-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev
|
libtiff4-dev libjpeg8-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev
|
||||||
python-tk
|
python-tk
|
||||||
- if [[ $PYMONGO == 'dev' ]]; then travis_retry pip install https://github.com/mongodb/mongo-python-driver/tarball/master;
|
- travis_retry pip install tox>=1.9 coveralls
|
||||||
true; fi
|
- travis_retry tox -e $(echo py$TRAVIS_PYTHON_VERSION-mg$PYMONGO | tr -d . | sed -e 's/pypypy/pypy/') -- -e test
|
||||||
- if [[ $PYMONGO != 'dev' ]]; then travis_retry pip install pymongo==$PYMONGO; true;
|
|
||||||
fi
|
|
||||||
- travis_retry pip install https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-2.1.tar.gz#md5=1534bb15cf311f07afaa3aacba1c028b
|
|
||||||
- travis_retry pip install coveralls
|
|
||||||
- travis_retry python setup.py install
|
|
||||||
script:
|
script:
|
||||||
- travis_retry python setup.py test
|
- tox -e $(echo py$TRAVIS_PYTHON_VERSION-mg$PYMONGO | tr -d . | sed -e 's/pypypy/pypy/') -- --with-coverage
|
||||||
- if [[ $TRAVIS_PYTHON_VERSION == '3.'* ]]; then 2to3 . -w; fi;
|
|
||||||
- coverage run --source=mongoengine setup.py test
|
|
||||||
- coverage report -m
|
|
||||||
- python benchmark.py
|
|
||||||
after_script: coveralls --verbose
|
after_script: coveralls --verbose
|
||||||
notifications:
|
notifications:
|
||||||
irc: irc.freenode.org#mongoengine
|
irc: irc.freenode.org#mongoengine
|
||||||
|
@ -44,8 +44,10 @@ General Guidelines
|
|||||||
- Avoid backward breaking changes if at all possible.
|
- Avoid backward breaking changes if at all possible.
|
||||||
- Write inline documentation for new classes and methods.
|
- Write inline documentation for new classes and methods.
|
||||||
- Write tests and make sure they pass (make sure you have a mongod
|
- Write tests and make sure they pass (make sure you have a mongod
|
||||||
running on the default port, then execute ``python setup.py test``
|
running on the default port, then execute ``python setup.py nosetests``
|
||||||
from the cmd line to run the test suite).
|
from the cmd line to run the test suite).
|
||||||
|
- Ensure tests pass on every Python and PyMongo versions.
|
||||||
|
You can test on these versions locally by executing ``tox``
|
||||||
- Add yourself to AUTHORS :)
|
- Add yourself to AUTHORS :)
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
|
30
README.rst
30
README.rst
@ -8,10 +8,10 @@ MongoEngine
|
|||||||
|
|
||||||
.. image:: https://secure.travis-ci.org/MongoEngine/mongoengine.png?branch=master
|
.. image:: https://secure.travis-ci.org/MongoEngine/mongoengine.png?branch=master
|
||||||
:target: http://travis-ci.org/MongoEngine/mongoengine
|
:target: http://travis-ci.org/MongoEngine/mongoengine
|
||||||
|
|
||||||
.. image:: https://coveralls.io/repos/MongoEngine/mongoengine/badge.png?branch=master
|
.. image:: https://coveralls.io/repos/MongoEngine/mongoengine/badge.png?branch=master
|
||||||
:target: https://coveralls.io/r/MongoEngine/mongoengine?branch=master
|
:target: https://coveralls.io/r/MongoEngine/mongoengine?branch=master
|
||||||
|
|
||||||
.. image:: https://landscape.io/github/MongoEngine/mongoengine/master/landscape.png
|
.. image:: https://landscape.io/github/MongoEngine/mongoengine/master/landscape.png
|
||||||
:target: https://landscape.io/github/MongoEngine/mongoengine/master
|
:target: https://landscape.io/github/MongoEngine/mongoengine/master
|
||||||
:alt: Code Health
|
:alt: Code Health
|
||||||
@ -38,12 +38,11 @@ Dependencies
|
|||||||
|
|
||||||
Optional Dependencies
|
Optional Dependencies
|
||||||
---------------------
|
---------------------
|
||||||
- **Django Integration:** Django>=1.4.0 for Python 2.x or PyPy and Django>=1.5.0 for Python 3.x
|
|
||||||
- **Image Fields**: Pillow>=2.0.0
|
- **Image Fields**: Pillow>=2.0.0
|
||||||
- dateutil>=2.1.0
|
- dateutil>=2.1.0
|
||||||
|
|
||||||
.. note
|
.. note
|
||||||
MongoEngine always runs it's test suite against the latest patch version of each dependecy. e.g.: Django 1.6.5
|
MongoEngine always runs it's test suite against the latest patch version of each dependecy. e.g.: PyMongo 3.0.1
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
========
|
========
|
||||||
@ -96,7 +95,26 @@ Some simple examples of what MongoEngine code looks like::
|
|||||||
Tests
|
Tests
|
||||||
=====
|
=====
|
||||||
To run the test suite, ensure you are running a local instance of MongoDB on
|
To run the test suite, ensure you are running a local instance of MongoDB on
|
||||||
the standard port, and run: ``python setup.py test``.
|
the standard port, and run: ``python setup.py nosetests``.
|
||||||
|
|
||||||
|
To run the test suite on every supported Python version and every supported PyMongo version,
|
||||||
|
you can use ``tox``.
|
||||||
|
tox and each supported Python version should be installed in your environment:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
# Install tox
|
||||||
|
$ pip install tox
|
||||||
|
# Run the test suites
|
||||||
|
$ tox
|
||||||
|
|
||||||
|
If you wish to run one single or selected tests, use the nosetest convention. It will find the folder,
|
||||||
|
eventually the file, go to the TestClass specified after the colon and eventually right to the single test.
|
||||||
|
Also use the -s argument if you want to print out whatever or access pdb while testing.
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
$ python setup.py nosetests --tests tests/test_django.py:QuerySetTest.test_get_document_or_404 -s
|
||||||
|
|
||||||
Community
|
Community
|
||||||
=========
|
=========
|
||||||
|
15
setup.cfg
15
setup.cfg
@ -1,11 +1,8 @@
|
|||||||
[nosetests]
|
[nosetests]
|
||||||
verbosity = 3
|
rednose = 1
|
||||||
|
verbosity = 2
|
||||||
detailed-errors = 1
|
detailed-errors = 1
|
||||||
#with-coverage = 1
|
cover-erase = 1
|
||||||
#cover-erase = 1
|
cover-branches = 1
|
||||||
#cover-html = 1
|
cover-package = mongoengine
|
||||||
#cover-html-dir = ../htmlcov
|
tests = tests
|
||||||
#cover-package = mongoengine
|
|
||||||
py3where = build
|
|
||||||
where = tests
|
|
||||||
#tests = document/__init__.py
|
|
||||||
|
2
setup.py
2
setup.py
@ -29,7 +29,6 @@ init = os.path.join(os.path.dirname(__file__), 'mongoengine', '__init__.py')
|
|||||||
version_line = list(filter(lambda l: l.startswith('VERSION'), open(init)))[0]
|
version_line = list(filter(lambda l: l.startswith('VERSION'), open(init)))[0]
|
||||||
|
|
||||||
VERSION = get_version(eval(version_line.split('=')[-1]))
|
VERSION = get_version(eval(version_line.split('=')[-1]))
|
||||||
print(VERSION)
|
|
||||||
|
|
||||||
CLASSIFIERS = [
|
CLASSIFIERS = [
|
||||||
'Development Status :: 4 - Beta',
|
'Development Status :: 4 - Beta',
|
||||||
@ -79,5 +78,6 @@ setup(name='mongoengine',
|
|||||||
classifiers=CLASSIFIERS,
|
classifiers=CLASSIFIERS,
|
||||||
install_requires=['pymongo>=2.7.1'],
|
install_requires=['pymongo>=2.7.1'],
|
||||||
test_suite='nose.collector',
|
test_suite='nose.collector',
|
||||||
|
setup_requires=['nose', 'rednose'], # Allow proper nose usage with setuptols and tox
|
||||||
**extra_opts
|
**extra_opts
|
||||||
)
|
)
|
||||||
|
12
tox.ini
Normal file
12
tox.ini
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[tox]
|
||||||
|
envlist = {py26,py27,py32,py33,py34,pypy,pypy3}-{mg27,mg28}
|
||||||
|
#envlist = {py26,py27,py32,py33,py34,pypy,pypy3}-{mg27,mg28,mg30,mgdev}
|
||||||
|
|
||||||
|
[testenv]
|
||||||
|
commands =
|
||||||
|
python setup.py nosetests {posargs}
|
||||||
|
deps =
|
||||||
|
mg27: PyMongo<2.8
|
||||||
|
mg28: PyMongo>=2.8,<3.0
|
||||||
|
mg30: PyMongo>=3.0
|
||||||
|
mgdev: https://github.com/mongodb/mongo-python-driver/tarball/master
|
Loading…
x
Reference in New Issue
Block a user