Почему я получаю ошибку 'Duplicate entry' в тестировании django?
У меня было несколько модульных тестов в Django, которые работали нормально. Я добавил несколько строк для отправки запросов в MySQL. После этого каждый модульный тест, включающий аутентификацию, вызывает исключения, даже если я удалю эти строки. в чем проблема?
Отчет об ошибке Django:
_mysql.connection.query(self, query) django.db.utils.IntegrityError: (1062, "Duplicate entry 'myuser' for key 'auth_user.username'")
Мои тесты:
class AnnotationPage(TestCase):
def setUp(self):
self.factory = RequestFactory()
self.user = User.objects.create_user(
username='myuser', password='12345678')
def test_labeling(self):
ajaxData = {'testing': 'True',
'direction': 'forward'}
request = self.factory.post('/annotation', ajaxData)
request.user = self.user
response = AnnotationView(request)
assert response.content == b'{"image": "image.png", "id": 1}'
Мои тесты с запросами:
class AnnotationPage(TestCase):
def setUp(self):
self.factory = RequestFactory()
self.user = User.objects.create_user(
username='myuser', password='12345678')
self.cursor = connection.cursor()
query = "TRUNCATE TABLE homepage_imagelabel"
self.cursor.execute(query)
def test_labeling(self):
self.cursor = connection.cursor()
query = "INSERT INTO homepage_imagelabel (ImageFile) VALUES ('image.png')"
self.cursor.execute(query)
ajaxData = {'testing': 'True',
'direction': 'forward'}
request = self.factory.post('/annotation', ajaxData)
request.user = self.user
response = AnnotationView(request)
assert response.content == b'{"image": "image.png", "id": 1}'