1
如何测试仅用于django的TestCase方法的装饰器?我有在一个测试客户端创建管理员用户,并记录用户一个装饰:测试测试函数装饰器
def create_admin_user_and_login(func):
@wraps(func)
def wrapper(self):
faker = Faker()
username = faker.pronounceable_unique_id(length=30)
password = faker.password()
user = User.objects.create_user(
username=username,
first_name=faker.word().title(),
last_name=faker.word().title(),
email=faker.email(),
password=password)
user.is_staff = True
user.is_superuser = True
user.save()
self.client.login(username=username, password=password)
return func(self)
return wrapper
凡Faker()
是假的数据生成,无关的话题。我用这样的装饰:
class SomeUnitTest(TestCase):
@create_admin_user_and_login
def test_login_required(self):
self.assertContains(self.client.get(reverse('some_url')), 'logged in')
如何测试这个装饰?我查看了cpython源代码的答案,但找不到我的用例。