def _run_import_view(self, postfile):
with factory.load_test_file(postfile) as poststring:
POST = QueryDict(poststring.read())
# mocking redis and celery task, to only test the view itself
with patch('main.views.redis.ScratchStorage') as MockStorage:
with patch('main.views.import_table_task.delay') as mock_task:
storage = MockStorage.return_value
storage.save.return_value = 'randomkey'
result = MagicMock()
result.id = '00000000-0000-0000-0000-000000000001'
mock_task.return_value = result
# fake the request
response = self.client.post(self._import_url(), data=POST)
# assert calls to redis and celery
storage.save.assert_called()
mock_task.assert_called_with(self.target_study.pk, self.user.pk, 'randomkey')
self.assertEqual(self._assay_count(), 0) # view does not change assays
return response
评论列表
文章目录