[英]Django 1.6.1 Fixtures not getting loaded for Unittest
Django is not loading fixtures for the following test. Django没有为以下测试加载夹具。
from django.test import TestCase
class DevViewsTests(TestCase):
fixtures = ['device/fixtures/test_device.json']
def setUp(self):
self.client = Client()
self.username = 'cws'
self.email = 'alain.sturzenegger@gmail.com'
self.password = 'cws123'
self.test_user = User.objects.create_user(self.username, self.email, self.password)
login = self.client.login(username=self.username, password=self.password)
self.assertEqual(login, True)
def test_device_list(self):
url = reverse('device-overview')
response = self.client.get(url)
logger.debug('GET[%s]:[%s]', url, response.status_code)
self.assertQuerysetEqual(response.context['device_list'], ['<device: Device Test 1>'])
This directs to the following view But from that view I am not able to retrieve device_list 这指向以下视图,但是从该视图中,我无法检索device_list
def overview(request):
device_list = device.objects.all()
print "List of devices"
print device_list # getting blank list []
context = {'device_list': device_list}
return render(request, 'device/index.html', context)
My test_device.json file is as follows 我的test_device.json文件如下
[
{
"pk": 1,
"model": "device.device",
"fields": {
"owner": 1,
"phone": "+41765687755",
"name": "Device Test 1",
"access_code": "1234"
}
}
]
File Structure is 文件结构为
cws
--device
--fixtures
----test_device.json
Any Idea what I am doing wrong? 知道我在做什么错吗? Please provide suggestion..
请提供建议。
According to fixture loading documentation : 根据夹具装载文件 :
Once you've created a fixture and placed it in a fixtures directory in one of your INSTALLED_APPS , you can use it in your unit tests by specifying a fixtures class attribute on your django.test.TestCase subclass:
创建固定装置并将其放置在INSTALLED_APPS之一的固定装置目录中后 ,可以通过在django.test.TestCase子类上指定固定装置类属性,在单元测试中使用它:
...
...
Just specify the filename, not relative path from project directory: 只需指定文件名,而不是项目目录中的相对路径即可:
fixtures = ['test_device.json']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.