Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 测试失败:匹配的查询不存在_Python_Django - Fatal编程技术网

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

Python 测试失败:匹配的查询不存在,python,django,Python,Django,我花了一整天的时间试图找出这个错误可能来自哪里,但徒劳无功。 我的测试功能如下: 更新时定义测试匹配数据(自我): #TST N.1:比赛现场直播 # ------- 匹配\u更新\u数据1={ “匹配”:{ “id”:1, “状态”:“未启动”, }, } match1=Match.objects.get(id=1) request=self.\uuuuuu class\uuuuuuu.factory.put(“”,匹配\u更新的\u数据1,format='json')) 将认证添加

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

更新时定义测试匹配数据(自我): #TST N.1:比赛现场直播 # ------- 匹配\u更新\u数据1={ “匹配”:{ “id”:1, “状态”:“未启动”, }, } match1=Match.objects.get(id=1) request=self.\uuuuuu class\uuuuuuu.factory.put(“”,匹配\u更新的\u数据1,format='json')) 将认证添加到请求(请求,is_staff=True) 响应=更新匹配视频(请求) self.assertEqual(Match.objects.get(id=1).状态,'live') 这是我正在测试的功能的相关部分:

def更新匹配视频(请求):
如果不是,则请求.data.get('match')。get('id'):
返回JsonResponse({},status=status.HTTP\u 400\u BAD\u请求)
match_id=有效的_数据或_错误(request.data,method='PUT')['match_data']['id']
尝试:
match=match.objects.get(id=match\u id)
db_match_status=match.status
如果db_match_status=='live':
有效的\u数据\u或\u错误(request.data,method='PUT')['match\u data']['status']='live'
elif db_match_status==“已关闭”:
有效的\u数据\u或\u错误(request.data,method='PUT')['match\u data']['status']='closed'
除:
打印('匹配项不存在')
当我使用命令时:

$ python server/manage.py test --settings=skill.settings_test api.views.tests.test_views.ViewsTestCase
要运行文件/views/tests/test_视图包含的所有测试函数(此文件仅包含一个类,该类为ViewsTestCase,包含许多测试),所有测试都会成功,但当我使用以下命令运行位于文件夹/api/views中的所有测试时:

$ python server/manage.py test --settings=skill.settings_test api.views 
我得到以下错误:

错误:更新时测试匹配数据(api.views.tests.test\u views.ViewsTestCase) 回溯(最近一次呼叫最后一次):

文件“/home/yosra/Bureau/app/master/server/api/views/tests/test\u views.py”,更新时在test\u match\u data\u中的第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_方法中 返回getattr(self.get_queryset(),name)(*args,**kwargs)

文件“/home/yosra/Bureau/app/master/venv/lib/python3.6/site packages/django/db/models/query.py”,第399行,在get中 self.model.\u meta.object\u name

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

我的测试数据库不是空的,它包含一个id为1的匹配实例。此外,没有从数据库中删除此元素的测试函数。谁能告诉我这可能是从哪里来的


感谢您的帮助

为什么您说测试数据库不是空的?您是如何填充它的?Django测试总是从一个空的db开始。是的,我的意思是它被填充了,我有一个文件populate\u db.py为我做这件事,还有一堆包含数据的文本文件。您正在使用两种不同的设置运行测试
skill.settings\u test
skillcorner.settings\u test
。也许有什么事要做…我刚刚更新了我的帖子,不,不是关于设置的,谢谢!为什么说测试数据库不是空的?您是如何填充它的?Django测试总是从一个空的db开始。是的,我的意思是它被填充了,我有一个文件populate\u db.py为我做这件事,还有一堆包含数据的文本文件。您正在使用两种不同的设置运行测试
skill.settings\u test
skillcorner.settings\u test
。也许有什么事要做…我刚刚更新了我的帖子,不,不是关于设置的,谢谢!