def test_on_worker_process_init(self): with self.fixup_context(self.app) as (f, _, _): with patch('celery.fixups.django._maybe_close_fd') as mcf: _all = f._db.connections.all = Mock() conns = _all.return_value = [ Mock(), Mock(), ] conns[0].connection = None with patch.object(f, 'close_cache'): with patch.object(f, '_close_database'): f.on_worker_process_init() mcf.assert_called_with(conns[1].connection) f.close_cache.assert_called_with() f._close_database.assert_called_with() mcf.reset_mock() _all.side_effect = AttributeError() f.on_worker_process_init() mcf.assert_called_with(f._db.connection.connection) f._db.connection = None f.on_worker_process_init() f.validate_models = Mock(name='validate_models') self.mock_environ('FORKED_BY_MULTIPROCESSING', '1') f.on_worker_process_init() f.validate_models.assert_called_with()
def test_on_task_prerun(self): task = Mock() with self.fixup_context(self.app) as (f, _, _): task.request.is_eager = False with patch.object(f, 'close_database'): f.on_task_prerun(task) f.close_database.assert_called_with() task.request.is_eager = True with patch.object(f, 'close_database'): f.on_task_prerun(task) self.assertFalse(f.close_database.called)
def test_on_task_postrun(self): task = Mock() with self.fixup_context(self.app) as (f, _, _): with patch.object(f, 'close_cache'): task.request.is_eager = False with patch.object(f, 'close_database'): f.on_task_postrun(task) self.assertTrue(f.close_database.called) self.assertTrue(f.close_cache.called) # when a task is eager, do not close connections with patch.object(f, 'close_cache'): task.request.is_eager = True with patch.object(f, 'close_database'): f.on_task_postrun(task) self.assertFalse(f.close_database.called) self.assertFalse(f.close_cache.called)
def test_on_worker_process_init(self): with self.fixup_context(self.app) as (f, _, _): with patch("celery.fixups.django._maybe_close_fd") as mcf: _all = f._db.connections.all = Mock() conns = _all.return_value = [Mock(), Mock()] conns[0].connection = None with patch.object(f, "close_cache"): with patch.object(f, "_close_database"): f.on_worker_process_init() mcf.assert_called_with(conns[1].connection) f.close_cache.assert_called_with() f._close_database.assert_called_with() mcf.reset_mock() _all.side_effect = AttributeError() f.on_worker_process_init() mcf.assert_called_with(f._db.connection.connection) f._db.connection = None f.on_worker_process_init()
def test_close_database(self): with self.fixup_context(self.app) as (f, _, _): with patch.object(f, '_close_database') as _close: f.db_reuse_max = None f.close_database() _close.assert_called_with() _close.reset_mock() f.db_reuse_max = 10 f._db_recycles = 3 f.close_database() _close.assert_not_called() self.assertEqual(f._db_recycles, 4) _close.reset_mock() f._db_recycles = 20 f.close_database() _close.assert_called_with() self.assertEqual(f._db_recycles, 1)
def test_close_database(self): with self.fixup_context(self.app) as (f, _, _): f._close_old_connections = Mock() f.close_database() f._close_old_connections.assert_called_with() f._close_old_connections = None with patch.object(f, '_close_database') as _close: f.db_reuse_max = None f.close_database() _close.assert_called_with() _close.reset_mock() f.db_reuse_max = 10 f._db_recycles = 3 f.close_database() self.assertFalse(_close.called) self.assertEqual(f._db_recycles, 4) _close.reset_mock() f._db_recycles = 20 f.close_database() _close.assert_called_with() self.assertEqual(f._db_recycles, 1)
def test_close_database(self): with self.fixup_context(self.app) as (f, _, _): f._close_old_connections = Mock() f.close_database() f._close_old_connections.assert_called_with() f._close_old_connections = None with patch.object(f, "_close_database") as _close: f.db_reuse_max = None f.close_database() _close.assert_called_with() _close.reset_mock() f.db_reuse_max = 10 f._db_recycles = 3 f.close_database() self.assertFalse(_close.called) self.assertEqual(f._db_recycles, 4) _close.reset_mock() f._db_recycles = 20 f.close_database() _close.assert_called_with() self.assertEqual(f._db_recycles, 1)