测试失败:不存在匹配的查询

时间:2019-04-23 12:59:23

标签: python django

我花了整整一天的时间试图找出此错误可能来自何处,但徒劳无功。 我的测试功能如下:

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 / views使用:

$ python server/manage.py test --settings=skill.settings_test api.views 

我收到以下错误:

  

错误:test_match_data_while_updating(api.views.tests.test_views.ViewsTestCase)

     

回溯(最近通话最近一次):

     

在test_match_data_while_updating中的文件“ /home/yosra/Bureau/app/master/server/api/views/tests/test_views.py”,第226行       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)

     

在获取文件“ /home/yosra/Bureau/app/master/venv/lib/python3.6/site-packages/django/db/models/query.py”中,行399       self.model._meta.object_name

     

api.models.match.Match.DoesNotExist:匹配查询不存在。

我的测试数据库不为空,并且包含ID = 1的匹配实例。也没有测试功能可以从我的数据库中删除该元素。谁能告诉我这可能来自哪里?

感谢您的帮助

0 个答案:

没有答案