Skip to content

Commit 2f3afb0

Browse files
authored
Merge pull request #972 from lamby/dont-assume-64-bit-server-in-tests
Skip 64-bit specific tests. (Closes: #899)
2 parents 5a2e26d + f1f225c commit 2f3afb0

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

tests/conftest.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55
from distutils.version import StrictVersion
66

77

8-
_REDIS_VERSIONS = {}
8+
_REDIS_INFO = {}
99

1010

11-
def get_version(**kwargs):
11+
def get_info(**kwargs):
1212
params = {'host': 'localhost', 'port': 6379, 'db': 9}
1313
params.update(kwargs)
1414
key = '%s:%s' % (params['host'], params['port'])
15-
if key not in _REDIS_VERSIONS:
15+
if key not in _REDIS_INFO:
1616
client = redis.Redis(**params)
17-
_REDIS_VERSIONS[key] = client.info()['redis_version']
17+
_REDIS_INFO[key] = client.info()
1818
client.connection_pool.disconnect()
19-
return _REDIS_VERSIONS[key]
19+
return _REDIS_INFO[key]
2020

2121

2222
def _get_client(cls, request=None, **kwargs):
@@ -38,15 +38,22 @@ def teardown():
3838

3939

4040
def skip_if_server_version_lt(min_version):
41-
check = StrictVersion(get_version()) < StrictVersion(min_version)
41+
redis_version = get_info()['redis_version']
42+
check = StrictVersion(redis_version) < StrictVersion(min_version)
4243
return pytest.mark.skipif(check, reason="")
4344

4445

4546
def skip_if_server_version_gte(min_version):
46-
check = StrictVersion(get_version()) >= StrictVersion(min_version)
47+
redis_version = get_info()['redis_version']
48+
check = StrictVersion(redis_version) >= StrictVersion(min_version)
4749
return pytest.mark.skipif(check, reason="")
4850

4951

52+
def skip_unless_arch_bits(arch_bits):
53+
return pytest.mark.skipif(get_info()['arch_bits'] != arch_bits,
54+
reason="server is not {}-bit".format(arch_bits))
55+
56+
5057
@pytest.fixture()
5158
def r(request, **kwargs):
5259
return _get_client(redis.Redis, request, **kwargs)

tests/test_commands.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
from redis.client import parse_info
1212
from redis import exceptions
1313

14-
from .conftest import skip_if_server_version_lt, skip_if_server_version_gte
14+
from .conftest import (skip_if_server_version_lt, skip_if_server_version_gte,
15+
skip_unless_arch_bits)
1516

1617

1718
@pytest.fixture()
@@ -1689,6 +1690,7 @@ def test_geohash(self, r):
16891690
assert r.geohash('barcelona', 'place1', 'place2', 'place3') ==\
16901691
['sp3e9yg3kd0', 'sp3e9cbc3t0', None]
16911692

1693+
@skip_unless_arch_bits(64)
16921694
@skip_if_server_version_lt('3.2.0')
16931695
def test_geopos(self, r):
16941696
values = (2.1909389952632, 41.433791470673, 'place1') +\
@@ -1735,6 +1737,7 @@ def test_georadius_units(self, r):
17351737
assert r.georadius('barcelona', 2.191, 41.433, 1, unit='km') ==\
17361738
[b'place1']
17371739

1740+
@skip_unless_arch_bits(64)
17381741
@skip_if_server_version_lt('3.2.0')
17391742
def test_georadius_with(self, r):
17401743
values = (2.1909389952632, 41.433791470673, 'place1') +\
@@ -1792,6 +1795,7 @@ def test_georadius_store(self, r):
17921795
r.georadius('barcelona', 2.191, 41.433, 1000, store='places_barcelona')
17931796
assert r.zrange('places_barcelona', 0, -1) == [b'place1']
17941797

1798+
@skip_unless_arch_bits(64)
17951799
@skip_if_server_version_lt('3.2.0')
17961800
def test_georadius_store_dist(self, r):
17971801
values = (2.1909389952632, 41.433791470673, 'place1') +\
@@ -1803,6 +1807,7 @@ def test_georadius_store_dist(self, r):
18031807
# instead of save the geo score, the distance is saved.
18041808
assert r.zscore('places_barcelona', 'place1') == 88.05060698409301
18051809

1810+
@skip_unless_arch_bits(64)
18061811
@skip_if_server_version_lt('3.2.0')
18071812
def test_georadiusmember(self, r):
18081813
values = (2.1909389952632, 41.433791470673, 'place1') +\

0 commit comments

Comments
 (0)