def do_login(self, client, USER, PWD, status_code=hcodes.HTTP_OK_BASIC, error=None, **kwargs): """ Make login and return both token and authorization header """ if USER is None or PWD is None: BaseAuthentication.myinit() if USER is None: USER = BaseAuthentication.default_user if PWD is None: PWD = BaseAuthentication.default_password # AUTH_MAX_LOGIN_ATTEMPTS=0 # AUTH_REGISTER_FAILED_LOGIN=False # AUTH_SECOND_FACTOR_AUTHENTICATION=None # AUTH_DISABLE_UNUSED_CREDENTIALS_AFTER=0 # AUTH_MAX_PASSWORD_VALIDITY=0 data = {'username': USER, 'password': PWD} for v in kwargs: data[v] = kwargs[v] r = client.post(AUTH_URI + '/login', data=json.dumps(data)) if r.status_code != hcodes.HTTP_OK_BASIC: # VERY IMPORTANT FOR DEBUGGING WHEN ADVANCED AUTH OPTIONS ARE ON c = json.loads(r.data.decode('utf-8')) log.error(c['Response']['errors']) assert r.status_code == status_code content = json.loads(r.data.decode('utf-8')) if error is not None: errors = content['Response']['errors'] if errors is not None: assert errors[0] == error token = '' if content is not None: data = content.get('Response', {}).get('data', {}) if data is not None: token = data.get('token', '') return {'Authorization': 'Bearer ' + token}, token
def setUp(self): """ Note: in this base tests, I also want to check if i can run multiple Flask applications. Thi is why i prefer setUp on setUpClass """ log.debug('### Setting up the Flask server ###') app = create_app(testing_mode=True) self.app = app.test_client() # Auth init from base/custom config ba.myinit() self._username = ba.default_user self._password = ba.default_password