Skip to content

Commit 6d2ce6d

Browse files
author
Hugo Osvaldo Barrera
committed
Add tests for InMemoryBackend
1 parent e3c14a3 commit 6d2ce6d

File tree

1 file changed

+79
-1
lines changed

1 file changed

+79
-1
lines changed

tests/celery_unique/test_backends.py

Lines changed: 79 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,81 @@ 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+
70+
71+
72+
73+
74+
75+
76+
77+
78+
79+
80+
81+
82+
83+
84+
85+
86+
87+
88+
89+
90+
class InMemoryBackendTestCase(TestCase):
91+
"""Base class used to test InMemoryBackend methods."""
92+
93+
def setUp(self):
94+
self.backend = InMemoryBackend()
95+
96+
97+
class InMemoryBackendCreateTaskRecordTestCase(InMemoryBackendTestCase):
98+
99+
def test_record_created(self):
100+
task_id = '6bf813e5-74aa-4f12-a308-7e0a4bec5916'
101+
task_key = '5jPpAKs0HOzdBjAZud6yQiL'
102+
103+
self.backend.create_task_record(task_key, task_id)
104+
105+
self.assertEqual(self.backend.tasks.get(task_key), task_id)
106+
self.assertEqual(self.backend.get_task_id(task_key), task_id)
107+
108+
109+
class InMemoryBackendRevokeExtantRecordTestCase(InMemoryBackendTestCase):
110+
111+
def test_revoke_existing(self):
112+
task_id = '6bf813e5-74aa-4f12-a308-7e0a4bec5916'
113+
task_key = '5jPpAKs0HOzdBjAZud6yQiL'
114+
115+
self.backend.tasks[task_key] = task_id
116+
self.assertEqual(self.backend.tasks, {task_key: task_id})
117+
118+
self.backend.revoke_extant_task(task_key)
119+
self.assertEqual(self.backend.tasks, {})
120+
121+
def test_revoke_inexistant(self):
122+
# Note: this test also validates that we handle revoking inexistant
123+
# tasks without any exception:
124+
task_key = '5jPpAKs0HOzdBjAZud6yQiL'
125+
126+
self.assertEqual(self.backend.tasks, {})
127+
self.backend.revoke_extant_task(task_key)
128+
self.assertEqual(self.backend.tasks, {})
129+
130+
131+
class InMemoryBackendGetTaskIdTestCase(InMemoryBackendTestCase):
132+
133+
def test_get_existing(self):
134+
task_id = '6bf813e5-74aa-4f12-a308-7e0a4bec5916'
135+
task_key = '5jPpAKs0HOzdBjAZud6yQiL'
136+
137+
self.backend.tasks[task_key] = task_id
138+
self.assertEqual(self.backend.get_task_id(task_key), task_id)
139+
140+
def test_get_inexisting(self):
141+
task_key = '5jPpAKs0HOzdBjAZud6yQiL'
142+
143+
self.assertEqual(self.backend.tasks, {})
144+
self.assertIsNone(self.backend.get_task_id(task_key))

0 commit comments

Comments
 (0)