[Answered ]-Django tests – simulate that user is logged in

2👍

You should create user because tests create test database (not your) everytime.

User.objects.create_user(username=<client_username>, password=<client_password>)

Now create Client and login

self.c = django.test.client.Client()
self.c.login(username=<client_username>, password=<client_password>)

0👍

You can override request headers for every client request like this example:

def test_report_wrong_password(self):
    headers = dict()
    headers['HTTP_AUTHORIZATION'] = 'Basic ' + base64.b64encode('user_name:password')
    response = self.client.post(
        '/report/',
        content_type='application/json',
        data=json.dumps(JSON_DATA),
        **headers)
    self.assertEqual(response.status_code, 401)
👤Mounir

Leave a comment