Django - Напишите тестовую функцию, которая запускается один раз перед всеми тестовыми случаями
У меня есть код, который создает записи в таблице, потому что они необходимы для создания нового поста. Вам нужен пользователь, цель и категория цели. Я слышал, что setUp() запускается перед каждым тестом, так что это проблема, поскольку он может попытаться создать уже существующие экземпляры. Я бы хотел запускать setUp() один раз перед выполнением всех тестов. Как это сделать?
class PostTest(TestCase):
def setUp(self) -> None:
GoalCategory.objects.create(category='other', emoji_url='url')
self.user = UserFactory()
self.goal = GoalFactory()
def test_create_post(self):
response = self.client.post(reverse('post'),
data=json.dumps({'creator_id': str(self.user.uuid),
'goal_id': str(self.goal.uuid),
'body': 'Some text #Test'}),
content_type='application/json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
def test_no_goal_create_post(self):
response = self.client.post(reverse('post'),
data=json.dumps({'creator_id': str(self.user.uuid),
'goal_id': 'some messed up UUID',
'body': 'Some text #Test'}),
content_type='application/json')
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_no_user_create_post(self):
response = self.client.post(reverse('post'),
data=json.dumps({'creator_id': 'messed up user',
'goal_id': str(self.goal.uuid),
'body': 'Some text #Test'}),
content_type='application/json')
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)