Why I receive 'Duplicate entry' error in django testing?
I had some unit tests in Django that worked fine. I added some lines to send queries to MySQL. After that every unit test that includes authentication is raising exceptions, even I remove those lines. what is the problem?
Django error report:
_mysql.connection.query(self, query) django.db.utils.IntegrityError: (1062, "Duplicate entry 'myuser' for key 'auth_user.username'")
My Tests:
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}'
My Tests with queries:
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}'