MCPcopy
hub / github.com/rq/django-rq / test_cron_scheduler_detail_view

Method test_cron_scheduler_detail_view

tests/test_cron.py:180–236  ·  view source on GitHub ↗

Test cron scheduler detail view with various scenarios.

(self)

Source from the content-addressed store, hash-verified

178 self.client.login(username=self.user.username, password='pass')
179
180 def test_cron_scheduler_detail_view(self):
181 """Test cron scheduler detail view with various scenarios."""
182 # Create a real scheduler and register it
183 scheduler = DjangoCronScheduler(name='test-scheduler')
184 scheduler.register(
185 say_hello,
186 "default",
187 interval=60,
188 args=("hello",),
189 kwargs={"target": "world"},
190 meta={"source": "test"},
191 job_timeout=20,
192 result_ttl=500,
193 ttl=60,
194 failure_ttl=120,
195 )
196 scheduler.register(say_hello, "default", cron="*/5 * * * *")
197 scheduler.register_birth()
198
199 for prefix in ('admin:django_rq_', 'django_rq:'):
200 # Test 1: Successful view of existing scheduler
201 connection_index = scheduler.connection_index
202 url = reverse(f'{prefix}cron_scheduler_detail', args=[connection_index, 'test-scheduler'])
203 response = self.client.get(url)
204 self.assertEqual(response.status_code, 200)
205 self.assertEqual(response.context['scheduler'].name, 'test-scheduler')
206 self.assertEqual(len(response.context['cron_jobs']), 2)
207 first_cron_job = response.context['cron_jobs'][0]
208 self.assertEqual(first_cron_job['func_name'], 'tests.fixtures.say_hello')
209 self.assertEqual(first_cron_job['queue_name'], 'default')
210 self.assertEqual(first_cron_job['schedule'], 'every 60 seconds')
211 self.assertContains(response, 'test-scheduler')
212 self.assertContains(response, 'Cron Jobs')
213 self.assertContains(response, 'tests.fixtures.say_hello')
214 self.assertContains(response, 'default')
215 self.assertContains(response, 'every 60 seconds')
216 self.assertContains(response, 'cron: */5 * * * *')
217 self.assertContains(response, 'hello')
218 self.assertContains(response, 'world')
219 self.assertContains(response, 'source')
220 self.assertContains(response, 'job_timeout=20')
221 self.assertContains(response, 'result_ttl=500')
222 self.assertContains(response, 'ttl=60')
223 self.assertContains(response, 'failure_ttl=120')
224
225 # Test 2: Non-existent scheduler returns 404
226 url = reverse(f'{prefix}cron_scheduler_detail', args=[connection_index, 'nonexistent-scheduler'])
227 response = self.client.get(url)
228 self.assertEqual(response.status_code, 404)
229
230 # Test 3: Invalid connection index returns 404
231 url = reverse(f'{prefix}cron_scheduler_detail', args=[999, 'test-scheduler'])
232 response = self.client.get(url)
233 self.assertEqual(response.status_code, 404)
234
235 # Clean up
236 scheduler.register_death()
237

Callers

nothing calls this directly

Calls 2

registerMethod · 0.95
DjangoCronSchedulerClass · 0.90

Tested by

no test coverage detected