def test_pre_delete_async(self, settings, save_model_action, extract_content_data, cache, extract_process_data): settings.RUN_ASYNC = True model = TestModel( string_field='Test', integer_field=1, float_field=1.0, ) old_object = serialize_model_instance(model) model.string_field = None model.integer_field = None model.float_field = None model.id = None new_object = serialize_model_instance(model) content = signals._extract_content_data(old_object, new_object) extract_content_data.return_value = content signals._pre_delete(model, instance=model) # Check that extract process and access was done successfully self.assertEqual(cache.get_last_access.call_count, 1) self.assertEqual(cache.get_process.call_count, 1) self.assertEqual(extract_process_data.call_count, 1) # Check that was called asynchronously self.assertEqual(save_model_action.call_count, 0) self.assertEqual(save_model_action.apply_async.call_count, 1)
def test_pre_delete_fail(self, serialize_model_instance_mock, logger): model = TestModel( string_field='Test', integer_field=1, float_field=1.0, ) signals._pre_delete(model, instance=model) # Check that save process wasn't done successfully self.assertEqual(logger.exception.call_count, 1)
def test_pre_delete_fail_save_model_action(self, settings, save_model_action, extract_content_data, cache, extract_process_data, logger): settings.RUN_ASYNC = False model = TestModel( string_field='Test', integer_field=1, float_field=1.0, ) content = signals._extract_content_data() extract_content_data.return_value = content signals._pre_delete(model, instance=model) # Check that extract process and access was done successfully self.assertEqual(cache.get_last_access.call_count, 1) self.assertEqual(cache.get_process.call_count, 1) self.assertEqual(extract_process_data.call_count, 1) # Check that save process wasn't done successfully self.assertEqual(logger.exception.call_count, 1)