def test_reset_with_weak_password_endpoint(self):
        user = UserFactory.create()

        data = {'emailAddress': user.email_address, 'password': '******'}
        response = self.client().put(self.make_url('/user/reset'), data=self.encode_to_json_string(data), headers=self.headers())
        response_json = self.decode_from_json_string(response.data.decode('utf-8'))
        payload = response_json['msg']

        self.assertJSONKeyPresent(response_json, 'msg')
        self.assertEqual(payload, 'Bad Request - password not strong enough')
    def test_reset_with_strong_password_endpoint(self):
        user = UserFactory.create()
        password = '******'
        data = {'emailAddress': user.email_address, 'password': password}
        response = self.client().put(self.make_url('/user/reset'), data=self.encode_to_json_string(data), headers=self.headers())
        response_json = self.decode_from_json_string(response.data.decode('utf-8'))
        payload = response_json['msg']

        self.assertJSONKeyPresent(response_json, 'msg')
        self.assertEqual(payload, 'OK')
    def test_login_endpoint(self):
        user = UserFactory.create()

        data = {'emailAddress': user.email_address, 'password': '******'}
        response = self.client().post(self.make_url('/user/login/'), data=self.encode_to_json_string(data), headers=self.headers())
        response_json = self.decode_from_json_string(response.data.decode('utf-8'))
        payload = response_json['payload']

        self.assertJSONKeyPresent(response_json, 'payload')
        self.assertEqual(payload['user']['firstName'], user.first_name)
        self.assertEqual(payload['user']['lastName'], user.last_name)
        self.assertEqual(payload['user']['middleName'], user.middle_name)
        self.assertEqual(payload['user']['emailAddress'], user.email_address)