当我在我的用户应用程序中执行 ```python -m unittest`` 时,我收到此错误:
TypeError: argument of type 'ConnectionHandler' is not iterable
Run Code Online (Sandbox Code Playgroud)
我正在 django 中自定义我的 User 模型,我想对其进行测试。我已经进行了迁移并且自定义 User 模型运行良好(我使用了一个新数据库),所以我希望能够成功运行测试。这是我的测试代码:
from django.test import TestCase
from django.contrib.auth import get_user_model
# Create your tests here.
class UsersManagersTests(TestCase):
def test_create_user(self):
User = get_user_model()
user = User.objects.create_user(email='normal@user.com', password='foo')
self.assertEqual(user.email, 'normal@user.com')
self.assertTrue(user.is_active)
self.assertFalse(user.is_staff)
self.assertFalse(user.is_superuser)
try:
# username is None for the AbstractUser option
# username does not exist for the AbstractBaseUser option
self.assertIsNone(user.username)
except AttributeError:
pass
with self.assertRaises(TypeError):
User.objects.create_user()
with self.assertRaises(TypeError):
User.objects.create_user(email='')
with self.assertRaises(ValueError):
User.objects.create_user(email='', …Run Code Online (Sandbox Code Playgroud) 我添加了一个启动配置,允许我在 Django 中运行所有测试,另一个允许我运行服务器,这两个都可以正常工作。
我正在寻找一种调试单个文件的方法,但是${file}在参数中使用给出了 django 不喜欢的正常路径。
我想要一种更改${file}为 python 路径的方法,以便我可以在单个文件上调试我的测试。
python manage.py test --noinput --keepdb python.path.to.my.file
在命令行中工作。
下面的配置好像差不多:
{ "name": "Test File",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"test",
"--noinput",
"--keepdb",
"${file}"
],
"django": true
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此配置时出现错误,我认为这是因为 ${file}变成
path/to/my/file而不是path.to.my.file.