summaryrefslogtreecommitdiff
path: root/tests/test_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_utils.py')
-rw-r--r--tests/test_utils.py31
1 files changed, 27 insertions, 4 deletions
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 64b3f64..b71e67e 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -5,9 +5,22 @@ from unittest.mock import Mock
from redis import Redis
from tests import RQTestCase, fixtures
-from rq.utils import backend_class, ensure_list, first, get_version, is_nonstring_iterable, parse_timeout, utcparse, \
- split_list, ceildiv, get_call_string, truncate_long_string
from rq.exceptions import TimeoutFormatError
+from rq.utils import (
+ backend_class,
+ ceildiv,
+ ensure_list,
+ first,
+ get_call_string,
+ get_version,
+ import_attribute,
+ is_nonstring_iterable,
+ parse_timeout,
+ utcparse,
+ split_list,
+ truncate_long_string,
+)
+from rq.worker import SimpleWorker
class TestUtils(RQTestCase):
@@ -66,8 +79,9 @@ class TestUtils(RQTestCase):
self.assertEqual(fixtures.DummyQueue, backend_class(fixtures, 'DummyQueue'))
self.assertNotEqual(fixtures.say_pid, backend_class(fixtures, 'DummyQueue'))
self.assertEqual(fixtures.DummyQueue, backend_class(fixtures, 'DummyQueue', override=fixtures.DummyQueue))
- self.assertEqual(fixtures.DummyQueue,
- backend_class(fixtures, 'DummyQueue', override='tests.fixtures.DummyQueue'))
+ self.assertEqual(
+ fixtures.DummyQueue, backend_class(fixtures, 'DummyQueue', override='tests.fixtures.DummyQueue')
+ )
def test_get_redis_version(self):
"""Ensure get_version works properly"""
@@ -78,12 +92,14 @@ class TestUtils(RQTestCase):
class DummyRedis(Redis):
def info(*args):
return {'redis_version': '4.0.8'}
+
self.assertEqual(get_version(DummyRedis()), (4, 0, 8))
# Parses 3 digit version numbers correctly
class DummyRedis(Redis):
def info(*args):
return {'redis_version': '3.0.7.9'}
+
self.assertEqual(get_version(DummyRedis()), (3, 0, 7))
def test_get_redis_version_gets_cached(self):
@@ -95,6 +111,13 @@ class TestUtils(RQTestCase):
self.assertEqual(get_version(redis), (4, 0, 8))
redis.info.assert_called_once()
+ def test_import_attribute(self):
+ """Ensure get_version works properly"""
+ self.assertEqual(import_attribute('rq.utils.get_version'), get_version)
+ self.assertEqual(import_attribute('rq.worker.SimpleWorker'), SimpleWorker)
+ self.assertRaises(ValueError, import_attribute, 'non.existent.module')
+ self.assertRaises(ValueError, import_attribute, 'rq.worker.WrongWorker')
+
def test_ceildiv_even(self):
"""When a number is evenly divisible by another ceildiv returns the quotient"""
dividend = 12