def test_reset_pin_flow(test_client, init_database, create_organisation, authed_sempo_admin_user): # define different session id other_session_id = 'ATUid_05af06225e6163ec2dc9dc9cf8bc97aa000' # create organisation organisation = create_organisation organisation.external_auth_password = config.EXTERNAL_AUTH_PASSWORD # create highest tier admin admin = authed_sempo_admin_user admin.set_held_role('ADMIN', 'sempoadmin') # get admin's auth token auth = get_complete_auth_token(authed_sempo_admin_user) # create self signup user user = UserFactory(id=21, phone='+6185274136', first_name='Unknown first name', last_name='Unknown last name', pin_hash=User.salt_hash_secret('0000'), failed_pin_attempts=0, preferred_language="en", registration_method=RegistrationMethodEnum.USSD_SIGNUP) # bind user to organisation user.add_user_to_organisation(organisation, False) # reset pin as admin response = test_client.post('/api/v1/user/reset_pin/', headers=dict(Authorization=auth, Accept='application/json'), content_type='application/json', json={'user_id': user.id}) assert response.status_code == 200 assert len(user.pin_reset_tokens) > 0 # test user's reset process ussd_resp = req("", test_client, user.phone, session_id=other_session_id) assert "CON Please enter a PIN to manage your account." in ussd_resp ussd_resp = req("1212", test_client, user.phone, session_id=other_session_id) assert "CON Enter your PIN again" in ussd_resp ussd_resp = req("1212", test_client, user.phone, session_id=other_session_id) assert "CON Welcome to Sarafu" in ussd_resp
def test_get_legacy_location(test_client, init_database, create_organisation, authed_sempo_admin_user, param_latitude, param_longitude, param_common_name): """ GIVEN coordinates and a name WHEN storing this to the legacy fields for location in db THEN they are retrievable through the legacy location http api call """ # create organisation organisation = create_organisation organisation.external_auth_password = config.EXTERNAL_AUTH_PASSWORD # create admin admin = authed_sempo_admin_user admin.set_held_role('ADMIN', 'admin') # create user with legacy location information user = UserFactory( id=42, lat=param_latitude, lng=param_longitude, _location=param_common_name, ) user.add_user_to_organisation(organisation, False) # get admin auth token auth = get_complete_auth_token(authed_sempo_admin_user) response = test_client.get( '/api/v2/geolocation/legacy/user/42/', headers=dict( Authorization=auth, Accept='application/json', ), ) assert response.status_code == 200 assert response.json['lat'] == param_latitude assert response.json['lng'] == param_longitude assert response.json['location'] == param_common_name