我的模特是这样的
class Appeal(models.Model):
category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True)
other_category = models.CharField(max_length=500, null=True, blank=True)
file = models.FileField(upload_to='appeals/', null=True)
short_name = models.CharField(max_length=100)
appeal_desc = models.TextField()
state = models.IntegerField(choices=STATUS, default=NEW)
dept = models.ForeignKey(Department, on_delete=models.SET_NULL, null=True)
location = models.PointField(srid=4326, null=True)
address = models.CharField(max_length=255)
history = HistoricalRecords()
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True, blank=True)
我要测试这个模型,但我失败了,我不知道我在哪里犯了错误,pytest只给出了这样一个错误
> assert appeal_res.status_code == status.HTTP_201_CREATED
E AssertionError: assert 400 == 201
E +400
E -201
我的整个测试都在这里
class AppealTestCase(APITestCase):
client = APIClient()
def post_appeal(self, short_name, appeal_desc, address, location, category):
url = reverse('appeal-create')
data = {'short_name': short_name, 'appeal_desc': appeal_desc,
'address': address, 'location': location, 'category_id': category}
response = self.client.post(url, data, format='json')
return response
def create_user_set_token(self):
user = User.objects.create_user(username='test', password='test123')
token = Token.objects.create(user=user)
self.client.credentials(HTTP_AUTHORIZATION='Token {0}'.format(token.key))
def test_post_and_get_appeal(self):
self.create_user_set_token()
category = Category.objects.create(name='Test Category').id
print(category)
short_name = 'bla bla'
desc = 'test desc'
location = 'SRID=4326;POINT (1.406108835239464 17.66601562254118)'
address = 'test address'
appeal_res = self.post_appeal(short_name, desc, address, location, category)
assert appeal_res.status_code == status.HTTP_201_CREATED
这里是我迄今为止所尝试的。如果有人知道,请在这个问题上帮助我,不管有没有
Category
模型我得到了相同的错误。提前谢谢
[已解决]
我的错误是在测试用例中声明FK
固定版本:
相关问题 更多 >
编程相关推荐