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源代碼的答案,但找不到我的用例。