TypeError: test_admin_login() missing 1 required positional argument: 'self'
Я пишу тест-кейсы для своих Rest API на базе Django. Проблема заключается в методе класса testcase. Я хочу использовать метод test_admin_login в методе setuptestdata. И у меня не получается это сделать. Я получаю ошибку, о которой я упоминал в заголовке.
class MyTests(TestCase):
allow_database_queries: True
client = APIClient()
@classmethod
def setUpTestData(cls):
# client = APIClient()
# AUTHENTICATION
# response = cls.client.post(reverse('auth'),data={"username":"admin","password":"ppoopp00"},format='json')
value = cls.test_admin_login()
print(value)
cls.auth_token = cls.test_admin_login(cls)
# CREATE PROJECT
response = cls.client.post(
reverse('projects:project_create'),
data={"platform_subscriber_entity":"NucoinTest"},
format='json',
HTTP_AUTHORIZATION="JWT "+cls.auth_token
)
cls.project_key = response.data["platform_subscriber_id"]
def test_admin_login(self):
"""
Ensure we can create a new account object.
"""
url = reverse('auth')
response = self.client.post(url,data={"username":"admin","password":"testpass"},format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(len(response.data), 2)
return response.data["access"]
если какая-либо функция нуждается в self это означает, что вам нужно сначала создать ее экземпляр, чтобы использовать ее, а вы используете cls не экземпляр, поэтому все, что вам нужно, это создать экземпляр
cls().test_admin_login(cls)