annotate accounts/tests/test_tasks.py @ 1209:d8bb9c36aae1 modernize

Add unit test for accounts task.
author Brian Neal <bgneal@gmail.com>
date Thu, 30 Jan 2025 18:46:03 -0600
parents
children
rev   line source
bgneal@1209 1 """
bgneal@1209 2 Tests for the account application tasks.
bgneal@1209 3
bgneal@1209 4 """
bgneal@1209 5 from django.test import TestCase
bgneal@1209 6 from mock import call, patch, Mock
bgneal@1209 7
bgneal@1209 8 import accounts.stats
bgneal@1209 9 from accounts.tasks import user_stats_task
bgneal@1209 10
bgneal@1209 11
bgneal@1209 12 class UserStatsTaskTestCase(TestCase):
bgneal@1209 13 fixtures = ['accounts.json']
bgneal@1209 14
bgneal@1209 15 @patch('accounts.stats.get_redis_connection')
bgneal@1209 16 def test_user_stats_task(self, connection_mock):
bgneal@1209 17 redis_mock = Mock()
bgneal@1209 18 redis_mock.incr.return_value = 1
bgneal@1209 19 connection_mock.return_value = redis_mock
bgneal@1209 20
bgneal@1209 21 task = user_stats_task.s(1).apply()
bgneal@1209 22
bgneal@1209 23 self.assertEquals(redis_mock.mock_calls, [
bgneal@1209 24 call.incr('accounts:user_count'),
bgneal@1209 25 call.set('accounts:user_count', 1),
bgneal@1209 26 call.pipeline(),
bgneal@1209 27 call.pipeline().lpush('accounts:new_users', u'Gremmie'),
bgneal@1209 28 call.pipeline().ltrim('accounts:new_users', 0, 9),
bgneal@1209 29 call.pipeline().execute(),
bgneal@1209 30 ])