Skip to content

Commit 693b121

Browse files
author
Hugo Osvaldo Barrera
committed
Add tests for InMemoryBackend
1 parent e3c14a3 commit 693b121

File tree

1 file changed

+58
-1
lines changed

1 file changed

+58
-1
lines changed

tests/celery_unique/test_backends.py

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from mockredis import mock_redis_client
44

5-
from celery_unique.backends import RedisBackend
5+
from celery_unique.backends import InMemoryBackend, RedisBackend
66

77

88
class RedisBackendTestCase(TestCase):
@@ -64,3 +64,60 @@ def test_get_inexisting(self):
6464

6565
self.assertEqual(self.redis_client.keys(), [])
6666
self.assertIsNone(self.backend.get_task_id(task_key))
67+
68+
69+
class InMemoryBackendTestCase(TestCase):
70+
"""Base class used to test InMemoryBackend methods."""
71+
72+
def setUp(self):
73+
self.backend = InMemoryBackend()
74+
75+
76+
class InMemoryBackendCreateTaskRecordTestCase(InMemoryBackendTestCase):
77+
78+
def test_record_created(self):
79+
task_id = '6bf813e5-74aa-4f12-a308-7e0a4bec5916'
80+
task_key = '5jPpAKs0HOzdBjAZud6yQiL'
81+
82+
self.backend.create_task_record(task_key, task_id)
83+
84+
self.assertEqual(self.backend.tasks.get(task_key), task_id)
85+
self.assertEqual(self.backend.get_task_id(task_key), task_id)
86+
87+
88+
class InMemoryBackendRevokeExtantRecordTestCase(InMemoryBackendTestCase):
89+
90+
def test_revoke_existing(self):
91+
task_id = '6bf813e5-74aa-4f12-a308-7e0a4bec5916'
92+
task_key = '5jPpAKs0HOzdBjAZud6yQiL'
93+
94+
self.backend.tasks[task_key] = task_id
95+
self.assertEqual(self.backend.tasks, {task_key: task_id})
96+
97+
self.backend.revoke_extant_task(task_key)
98+
self.assertEqual(self.backend.tasks, {})
99+
100+
def test_revoke_inexistant(self):
101+
# Note: this test also validates that we handle revoking inexistant
102+
# tasks without any exception:
103+
task_key = '5jPpAKs0HOzdBjAZud6yQiL'
104+
105+
self.assertEqual(self.backend.tasks, {})
106+
self.backend.revoke_extant_task(task_key)
107+
self.assertEqual(self.backend.tasks, {})
108+
109+
110+
class InMemoryBackendGetTaskIdTestCase(InMemoryBackendTestCase):
111+
112+
def test_get_existing(self):
113+
task_id = '6bf813e5-74aa-4f12-a308-7e0a4bec5916'
114+
task_key = '5jPpAKs0HOzdBjAZud6yQiL'
115+
116+
self.backend.tasks[task_key] = task_id
117+
self.assertEqual(self.backend.get_task_id(task_key), task_id)
118+
119+
def test_get_inexisting(self):
120+
task_key = '5jPpAKs0HOzdBjAZud6yQiL'
121+
122+
self.assertEqual(self.backend.tasks, {})
123+
self.assertIsNone(self.backend.get_task_id(task_key))

0 commit comments

Comments
 (0)