Я потратил весь день, пытаясь выяснить, откуда эта ошибка, но тщетно.Моя тестовая функция следующая:
def test_match_data_while_updating(self):
# TST N.1 : Match is live
# -------
match_updated_data1 = {
'match': {
'id': 1,
'status': 'not_started',
},
}
match1 = Match.objects.get(id=1)
request = self.__class__.factory.put('', match_updated_data1, format='json')
add_authentication_to_request(request, is_staff=True)
response = update_match_video(request)
self.assertEqual(Match.objects.get(id=1).status,'live')
И это соответствующая часть функции, которую я тестирую:
def update_match_video(request):
if not request.data.get('match').get('id'):
return JsonResponse({}, status=status.HTTP_400_BAD_REQUEST)
match_id = valid_data_or_error(request.data, method='PUT')['match_data']['id']
try:
match = Match.objects.get(id = match_id)
db_match_status = match.status
if db_match_status == 'live':
valid_data_or_error(request.data, method='PUT')['match_data']['status'] = 'live'
elif db_match_status == 'closed':
valid_data_or_error(request.data, method='PUT')['match_data']['status'] = 'closed'
except:
print('Match does not exist')
Когда я использую команду:
$ python server/manage.py test --settings=skill.settings_test api.views.tests.test_views.ViewsTestCase
для запуска всех тестовых функций, содержащихся в файле / views / tests / test_views (этот файл содержит только один класс - ViewsTestCase со многими тестами), все тесты завершаются успешно, но когда я запускаю все свои тесты, которые находятся в папке /API / просмотров с использованием:
$ python server/manage.py test --settings=skill.settings_test api.views
Я получаю следующую ошибку:
ОШИБКА: test_match_data_ while_updating (api.views.tests.test_views.ViewsTestCase)
Traceback(последний вызов был последним):
Файл "/home/yosra/Bureau/app/master/server/api/views/tests/test_views.py", строка 226, в test_match_data_ while_updating match1 = Match.objects.get (id = 1)
Файл "/home/yosra/Bureau/app/master/venv/lib/python3.6/site-packages/django/db/models/manager.py", строка 82, в manager_method вернуть getattr (self.get_queryset (), name) (* args, ** kwargs)
File "/ home / yosra / Bureau / app / master / venv / lib / python3.6 / site-packages / django / db / models / query.py ", строка 399, в get self.model._meta.object_name
api.models.match.Match.DoesNotExist: Запрос на совпадение не существует.
моя тестовая база данных не пуста и содержит экземпляр соответствия с id = 1.Также нет тестовой функции, которая удаляет этот элемент из моей базы данных.Может ли кто-нибудь дать мне указание, откуда это может исходить?
Я ценю вашу помощь