python - Django 测试,验证是否自动创建了 Profile
问题描述
在此先感谢,如何验证在用户创建引发测试后自动创建配置文件?我在 TestCase 文档中进行了搜索,但什么也没找到,但我确定我遗漏了一些非常明显的东西。
from django.test import TestCase
from django.contrib.auth import get_user_model
from users.models import Profile
class test_user_creation(TestCase):
def test_create_user(self):
User = get_user_model()
new_user = User.objects.create_user(
username="New_user", email="New_user@user.com", date_of_birth="2002-12-23")
self.assertEqual(new_user.username, "New_user")
self.assertEqual(new_user.email, "New_user@user.com")
self.assertEqual(new_user.date_of_birth, "2002-12-23")
self.assertIs(new_user.is_admin, False)
self.assertIs(new_user.is_staff, False)
self.assertEqual(
new_user.profile, "New_user Profile")
最后一个是我要问的那个,它是这样工作的,但是如果不参考 Profile 类返回的字符串,我怎么能做到呢?
我的个人资料课程
class Profile(models.Model):
user = models.OneToOneField(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
def __str__(self):
return f'{self.user.username} Profile'
解决方案
您可以尝试使用管理器找到它:
self.assertEqual(new_user.profile, Profile.objects.get(user=new_user))
推荐阅读
- ios - 面料:答案:购买活动
- logstash - 获取logstash拆分过滤器的索引
- c++ - 如何访问 integer_sequence 的第 n 个值?
- android - 如何从领域对象服务器读取数据?
- react-native - 如何在本机反应中直接在朋友首次应用启动(即注册期间)时直接填充推荐代码?
- javascript - Javascript:使用“if...else”语句触发“for”循环不起作用
- reactjs - 将 certbot 与 nginx 一起使用的问题
- c# - 带有类库的 Nlog
- reactjs - 反应将已定义属性的异常抛出为未定义
- hibernate - 如何生成 6 个字符的随机变量