Ok I'm writing tests for my Django app. I'm trying to figure out a way to iterate over the testing for a ajax register call for the appropriate responses. It's working but I know it can be done in a more efficient way.
def test_ajax_register(self):
c = Client()
# Check register success
response = c.post('/register/', {
'register-username': 'testuser',
'register-email': 'testuser@email.com',
'register-password': 'password'
})
self.assertEqual(json.loads(response.content)['status'], 'success')
self.assertEqual(response.status_code, 200)
# Check register failed username taken
response = c.post('/register/', {
'register-username': 'testuser',
'register-email': 'testuser@email.com',
'register-password': 'password'
})
self.assertEqual(json.loads(response.content)['status'], 'fail')
self.assertEqual(json.loads(response.content)['error_msg'], 'username already in use')
# Check register failed email in use
response = c.post('/register/', {
'register-username': 'testuser1',
'register-email': 'testuser@email.com',
'register-password': 'password'
})
self.assertEqual(json.loads(response.content)['status'], 'fail')
self.assertEqual(json.loads(response.content)['error_msg'], 'email already in use')
# Check register failed password length
response = c.post('/register/', {
'register-username': 'testuser2',
'register-email': 'testuser2@email.com',
'register-password': 'pass'
})
self.assertEqual(json.loads(response.content)['status'], 'fail')
self.assertEqual(json.loads(response.content)['error_msg'], 'password must be atleast 8 characters long')