Test on ZODB 4.4
Fixes #169. We need this version for IMultiCommitStorage and the registerDB fix in ConflictResolvingStorage. Since these versions run on Python 2.7.8, there's no motivation for trying to go back farther.
This commit is contained in:
parent
68c8cf1cb4
commit
3b65f778e6
|
@ -30,7 +30,10 @@ matrix:
|
||||||
- python: 3.5
|
- python: 3.5
|
||||||
env: ENV=mysql
|
env: ENV=mysql
|
||||||
- python: 2.7
|
- python: 2.7
|
||||||
env: ENV=mysql
|
env:
|
||||||
|
- ENV=mysql
|
||||||
|
- OLDZODB=true
|
||||||
|
|
||||||
- python: pypy-5.4.1
|
- python: pypy-5.4.1
|
||||||
env: ENV=mysql
|
env: ENV=mysql
|
||||||
|
|
||||||
|
@ -82,6 +85,7 @@ install:
|
||||||
- if [[ $TRAVIS_PYTHON_VERSION != pypy* ]]; then pip install -U pylibmc cffi; fi
|
- if [[ $TRAVIS_PYTHON_VERSION != pypy* ]]; then pip install -U pylibmc cffi; fi
|
||||||
- pip install -U -e ".[test]"
|
- pip install -U -e ".[test]"
|
||||||
- .travis/setup-$ENV.sh
|
- .travis/setup-$ENV.sh
|
||||||
|
- if [[ $OLDZODB == true ]]; then .travis/setup-oldzodb.sh; fi
|
||||||
|
|
||||||
cache: pip
|
cache: pip
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
pip uninstall -y ZODB ZEO transaction
|
||||||
|
pip install "ZODB[test] == 4.4.3" "ZEO == 4.3.1" "transaction == 1.7.0"
|
|
@ -14,11 +14,11 @@ supported platform (OS X, Windows or "manylinx"), you can get a
|
||||||
pre-built binary wheel. If you install from source or on a different
|
pre-built binary wheel. If you install from source or on a different
|
||||||
platform, you will need to have a functioning C compiler.
|
platform, you will need to have a functioning C compiler.
|
||||||
|
|
||||||
RelStorage requires a modern version of ZODB; it is tested with ZODB
|
RelStorage requires a modern version of ZODB and ZEO; it is tested
|
||||||
4.3 and 5.0 but *might* work with ZODB as old as 3.10. If you need to
|
with ZODB 4.4 and 5.x and ZEO 4.3 and 5.x. If you need to use an older
|
||||||
use an older version of ZODB, install RelStorage 1.6. Likewise, if
|
version of ZODB/ZEO, install RelStorage 1.6. Likewise, if you need
|
||||||
you need Python 2.6 support, install RelStorage 1.6 (note that 1.6
|
Python 2.6 support, install RelStorage 1.6 (note that 1.6 *does not*
|
||||||
*does not* run on Python 3 or PyPy).
|
run on Python 3 or PyPy).
|
||||||
|
|
||||||
Database Adapter
|
Database Adapter
|
||||||
================
|
================
|
||||||
|
|
|
@ -256,6 +256,8 @@ class GenericRelStorageTests(
|
||||||
finally:
|
finally:
|
||||||
db.close()
|
db.close()
|
||||||
|
|
||||||
|
@util.skipOnZODB4("ZODB/tests/StorageTestBase"
|
||||||
|
"expects different results from handle_all_serials")
|
||||||
def checkResolveConflictBetweenConnections(self):
|
def checkResolveConflictBetweenConnections(self):
|
||||||
# Verify that conflict resolution works between storage instances
|
# Verify that conflict resolution works between storage instances
|
||||||
# bound to connections.
|
# bound to connections.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
import unittest
|
import unittest
|
||||||
|
import pkg_resources
|
||||||
|
|
||||||
# ZODB >= 3.9. The blob directory can be a private cache.
|
# ZODB >= 3.9. The blob directory can be a private cache.
|
||||||
shared_blob_dir_choices = (False, True)
|
shared_blob_dir_choices = (False, True)
|
||||||
|
@ -11,6 +11,9 @@ RUNNING_ON_TRAVIS = os.environ.get('TRAVIS')
|
||||||
RUNNING_ON_APPVEYOR = os.environ.get('APPVEYOR')
|
RUNNING_ON_APPVEYOR = os.environ.get('APPVEYOR')
|
||||||
RUNNING_ON_CI = RUNNING_ON_TRAVIS or RUNNING_ON_APPVEYOR
|
RUNNING_ON_CI = RUNNING_ON_TRAVIS or RUNNING_ON_APPVEYOR
|
||||||
|
|
||||||
|
# pylint:disable=no-member
|
||||||
|
RUNNING_ON_ZODB4 = pkg_resources.get_distribution('ZODB').version[0] == '4'
|
||||||
|
|
||||||
def _do_not_skip(reason): # pylint:disable=unused-argument
|
def _do_not_skip(reason): # pylint:disable=unused-argument
|
||||||
def dec(f):
|
def dec(f):
|
||||||
return f
|
return f
|
||||||
|
@ -26,6 +29,11 @@ if RUNNING_ON_APPVEYOR:
|
||||||
else:
|
else:
|
||||||
skipOnAppveyor = _do_not_skip
|
skipOnAppveyor = _do_not_skip
|
||||||
|
|
||||||
|
if RUNNING_ON_ZODB4:
|
||||||
|
skipOnZODB4 = unittest.skip
|
||||||
|
else:
|
||||||
|
skipOnZODB4 = _do_not_skip
|
||||||
|
|
||||||
CACHE_SERVERS = None
|
CACHE_SERVERS = None
|
||||||
CACHE_MODULE_NAME = None
|
CACHE_MODULE_NAME = None
|
||||||
|
|
||||||
|
|
12
setup.py
12
setup.py
|
@ -125,22 +125,22 @@ setup(
|
||||||
'cx_Oracle>=5.0.0'
|
'cx_Oracle>=5.0.0'
|
||||||
],
|
],
|
||||||
":python_full_version >= '2.7.9'": [
|
":python_full_version >= '2.7.9'": [
|
||||||
'ZODB >= 4.4.2',
|
'ZODB >= 4.4.3',
|
||||||
'ZEO >= 4.2.0',
|
'ZEO >= 4.3.1',
|
||||||
],
|
],
|
||||||
":python_full_version == '3.6.0rc1'": [
|
":python_full_version == '3.6.0rc1'": [
|
||||||
# For some reason ZEO isn't getting installed
|
# For some reason ZEO isn't getting installed
|
||||||
# on 3.6rc1/pip 9.0.1/tox 2.5.1. Looks like the
|
# on 3.6rc1/pip 9.0.1/tox 2.5.1. Looks like the
|
||||||
# version selection <, >= environment markers aren't working.
|
# version selection <, >= environment markers aren't working.
|
||||||
# So we give a full version spec, which seems to work.
|
# So we give a full version spec, which seems to work.
|
||||||
'ZODB >= 4.4.2',
|
'ZODB >= 4.4.3',
|
||||||
'ZEO >= 4.2.0',
|
'ZEO >= 4.3.1',
|
||||||
],
|
],
|
||||||
":python_full_version < '2.7.9'": [
|
":python_full_version < '2.7.9'": [
|
||||||
# We must pin old versions prior to 2.7.9 because ZEO
|
# We must pin old versions prior to 2.7.9 because ZEO
|
||||||
# 5 only runs on versions with good SSL support.
|
# 5 only runs on versions with good SSL support.
|
||||||
'ZODB >= 4.4.2, <5.0',
|
'ZODB >= 4.4.3, <5.0',
|
||||||
'ZEO >= 4.2.0, <5.0'
|
'ZEO >= 4.3.1, <5.0'
|
||||||
],
|
],
|
||||||
'test': tests_require,
|
'test': tests_require,
|
||||||
},
|
},
|
||||||
|
|
12
tox.ini
12
tox.ini
|
@ -1,5 +1,5 @@
|
||||||
[tox]
|
[tox]
|
||||||
envlist = py27-mysql,py27-postgres,pypy-mysql,pypy-postgres,py34-mysql,py34-postgres,py36-mysql,py36-postgres
|
envlist = py27-mysql,py27-oldzodb,py27-postgres,pypy-mysql,pypy-postgres,py34-mysql,py34-postgres,py36-mysql,py36-postgres
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
# Our top-level 'relstorage' directory screws up imports.
|
# Our top-level 'relstorage' directory screws up imports.
|
||||||
|
@ -9,13 +9,21 @@ deps =
|
||||||
coverage
|
coverage
|
||||||
.[test]
|
.[test]
|
||||||
commands =
|
commands =
|
||||||
coverage run -m relstorage.tests.alltests
|
coverage run -m relstorage.tests.alltests -f -v
|
||||||
|
|
||||||
[testenv:py27-mysql]
|
[testenv:py27-mysql]
|
||||||
deps =
|
deps =
|
||||||
.[mysql]
|
.[mysql]
|
||||||
{[testenv]deps}
|
{[testenv]deps}
|
||||||
|
|
||||||
|
[testenv:py27-oldzodb]
|
||||||
|
deps =
|
||||||
|
.[postgresql]
|
||||||
|
{[testenv]deps}
|
||||||
|
ZODB[test] == 4.4.3
|
||||||
|
ZEO == 4.3.1
|
||||||
|
transaction == 1.7.0
|
||||||
|
|
||||||
[testenv:py27-postgres]
|
[testenv:py27-postgres]
|
||||||
deps =
|
deps =
|
||||||
.[postgresql]
|
.[postgresql]
|
||||||
|
|
Loading…
Reference in New Issue