У меня есть тестовый класс так же, как показано ниже:нужно издеваться неофициальный метод испытания в Django
@mock.patch('myapp.apps.mytask1.views.image_processing.apply_async')
class SortAPITestCase(APITestCase):
def hit_scan("""some args"""):
scan_uri = 'some url'
data = 'some data'
resp = self.client.post(scan_uri, data=data)
id = resp.data['id']
self.assertEqual(resp.status_code, 201)
return data, id
def setUp(self):
super(SortAPITestCase, self).setUp()
self.scan_data, self.id = self.hit_scan()
def test_1(self, mock_obj):
.....
def test_2(self, mock_obj):
.....
В myapp.apps.mytask1.views
, есть API сканирования, где есть post
метод, который вызывает сельдерея задачи, как :
def post("""some args"""):
""" here there is a celery task that gets called"""
image_processing.apply_async(
args=[img_data], queue='image', countdown=10
)
сельдерей печатает задачи из сообщения, когда его называют несколько, как показано ниже
@shared_task
def image_processing(img_data):
if os.isfile(img_file):
print "File Not Present"
Итак, всякий раз, когда img_file
нет, он распечатывает File Not Present
. Когда тестовые ошибки (с макетами) отправляются в API сканирования, это сообщение печати не выводится на консоль из-за макета. Но метод hit_scan()
, когда отправляется в Scan API, затем это сообщение печатается, поскольку задача сельдерея не издевается. Могу ли я высмеивать задачу сельдерея в hit_scan
??
Итак, есть ли способ предотвратить появление заявления о печати в консоли при запуске теста?
Кстати, все тестовые примеры проходят. С этой точки зрения нет проблем. Я просто хотел, чтобы консоль выглядела лучше, только ....
вместо заявлений на печать из задачи сельдерея.
Редактировать: Решил проблему. Вот что я сделал
@mock.patch('myapp.apps.mytask1.views.image_processing.apply_async')
def hit_scan(self, mock_obj, """some args"""):
Я редактировал вопрос с помощью фактического 'mock.patch()'. Когда 'hit_scan()' вызывается в функции 'test_', он не печатает утверждение в задаче celery. Я проверил это. –
То, что вы упомянули, не является проблемой. Надеюсь, вы видели мой отредактированный вопрос .. Спасибо –
Спасибо ... Я решил проблему. Проверить Изменить –