我对django rest framework进行了两个简单的单元测试。
第二次测试总是失败,因为数据库是空的。 我有一个数据迁移,它初始化我的数据,但它没有应用于第二次测试。
这是完整的代码。数据库sqlite。
# -*- coding: utf-8 -*-
import django
django.setup()
from django.contrib.auth.models import User
from rest_framework.authtoken.models import Token
from rest_framework.test import APITestCase
from rest_framework import status
from django.core.urlresolvers import reverse
from . import models
class BaseTestCase(APITestCase):
def setUp(self):
self.username = 'user'
self.user = User.objects.create(username=self.username, password=self.username)
self.token = Token.objects.create(user=self.user)
self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.token.key)
def tearDown(self):
self.token.delete()
self.user.delete()
class GMTOffsetsTestCase(BaseTestCase):
def test_get_all_offsets(self):
url = reverse('offset-list')
response = self.client.get(url)
self.assertEqual(response.status_code, status.HTTP_200_OK)
# We have 37 timezones
self.assertEqual(len(response.data), 37)
class TimezonesTestCase(BaseTestCase):
def test_create(self):
gmt_offset = models.GMTOffset.objects.all().first()
data = {'name': 'From Test', 'city': 'Saint Petersburg', 'offset': str(gmt_offset.id)}
url = reverse('timezone-list')
response = self.client.post(url, data)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
django 1.7.4,python 3.4
这些测试可能出现什么问题?
我应该更改数据库引擎吗?