def test_unit_update__err__external_auth_ldap_set_email(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_user( email='bob@bob', password=None, name='bob', auth_type=AuthType.LDAP, timezone='+2', lang='en', do_save=True, do_notify=False, ) with pytest.raises(ExternalAuthUserEmailModificationDisallowed): api.update( email='bob@bob1', user = u, name='bobi', password=None, auth_type=AuthType.LDAP, timezone='-1', lang='fr', do_save=True, )
def test_unit__create_minimal_user_and_update__err__set_unaivalable_auth_type( self, session, app_config ): api = UserApi(current_user=None, session=session, config=app_config) u = api.create_minimal_user("bob@bob") with pytest.raises(UserAuthTypeDisabled): api.update(u, name="bob", email="bob@bob", auth_type=AuthType.LDAP, do_save=True)
def test_unit_update__ok_external_auth_ldap(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_user( email='bob@bob', password=None, name='bob', auth_type=AuthType.LDAP, timezone='+2', lang='en', do_save=True, do_notify=False, ) api.update( email='bob@bob', user = u, name='bobi', password=None, auth_type=AuthType.LDAP, timezone='-1', lang='fr', do_save=True, ) assert u.display_name == 'bobi'
def test_unit_update__err__external_auth_ldap_set_email(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_user( email='bob@bob', password=None, name='bob', auth_type=AuthType.LDAP, timezone='+2', lang='en', do_save=True, do_notify=False, ) with pytest.raises(ExternalAuthUserEmailModificationDisallowed): api.update( email='bob@bob1', user=u, name='bobi', password=None, auth_type=AuthType.LDAP, timezone='-1', lang='fr', do_save=True, )
def test_unit_update__ok_external_auth_ldap(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_user( email='bob@bob', password=None, name='bob', auth_type=AuthType.LDAP, timezone='+2', lang='en', do_save=True, do_notify=False, ) api.update( email='bob@bob', user=u, name='bobi', password=None, auth_type=AuthType.LDAP, timezone='-1', lang='fr', do_save=True, ) assert u.display_name == 'bobi'
def test_unit__update_user_email__err__wrong_format(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") # 2 char with pytest.raises(EmailValidationFailed): api.update(user=u, email="b+b")
def test_unit__user_with_email_exists__ok__nominal_case(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bibi@bibi") api.update(u, "bibi", "bibi@bibi", "password", do_save=True) transaction.commit() eq_(True, api.user_with_email_exists("bibi@bibi")) eq_(False, api.user_with_email_exists("unknown"))
def test_unit__update_timezone__too_long_timezone(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") with pytest.raises(TracimValidationFailed): timezone = "t" * 33 u = api.update(user=u, timezone=timezone) timezone = "t" * 32 api.update(user=u, timezone=timezone)
def test_unit__update_user_lang__err__too_long_lang(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") with pytest.raises(TracimValidationFailed): lang = "n" * 4 u = api.update(user=u, lang=lang) lang = "n" * 3 api.update(user=u, lang=lang)
def test_unit__update_user_password__err__too_short_password(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") # 5 char with pytest.raises(TracimValidationFailed): api.update(user=u, password="******") # 6 char api.update(user=u, password="******")
def test_unit__update_user_public_name__err__too_long_password(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") with pytest.raises(TracimValidationFailed): name = "n" * 256 u = api.update(user=u, name=name) name = "n" * 255 api.update(user=u, name=name)
def test_unit__update_user_password__err__too_long_password(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") with pytest.raises(TracimValidationFailed): password = "******" * 513 u = api.update(user=u, password=password) password = "******" * 512 api.update(user=u, password=password)
def test_unit__update_user_lang__err__too_short_lang(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") # 1 char with pytest.raises(TracimValidationFailed): u = api.update(user=u, lang="f") # 2 char u = api.update(user=u, lang="fr") assert u.lang == "fr"
def test_unit__update_user_public_name__err__too_short_public_name(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") # 2 char with pytest.raises(TracimValidationFailed): u = api.update(user=u, name="nn") # 3 char u = api.update(user=u, name="nnn") assert u.display_name == "nnn"
def test_get_one_by_email(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bibi@bibi") self.session.flush() api.update(u, "bibi", "bibi@bibi", "password", do_save=True) uid = u.user_id transaction.commit() eq_(uid, api.get_one_by_email("bibi@bibi").user_id)
def test_unit__create_minimal_user_and_update__err__set_unaivalable_auth_type(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') with pytest.raises(UserAuthTypeDisabled): api.update(u, name='bob', email='bob@bob', auth_type=AuthType.LDAP, do_save=True)
def test_unit__create_minimal_user_and_update__ok__nominal_case(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") api.update(u, "bob", "bob@bob", "password", do_save=True) nu = api.get_one_by_email("bob@bob") assert nu is not None assert nu.email == "bob@bob" assert nu.display_name == "bob" assert nu.validate_password("password")
def test_unit__get_one__ok__nominal_case(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('titi@titi') api.update(u, 'titi', 'titi@titi', 'password', do_save=True) one = api.get_one(u.user_id) eq_(u.user_id, one.user_id)
def test_unit__update_user_lang_name__ok__nominal_case(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") assert u.lang is None # 2 char u = api.update(user=u, lang="fr") assert u.lang == "fr" # 3 char u = api.update(user=u, lang="fre") assert u.lang == "fre"
def test_unit__update_user_public_name__ok__nominal_case(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") assert u.display_name == "bob" # 8 char u = api.update(user=u, name="John Doe") assert u.display_name == "John Doe" # 16 char u = api.update(user=u, name="John Doe" * 2) assert u.display_name == "John Doe" * 2
def test_unit__update_user_email__err__too_short_email(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") # 2 char with pytest.raises(TracimValidationFailed): u = api.update(user=u, email="b@") # 3 char u = api.update(user=u, email="b@b") assert u.email == "b@b"
def test_unit__update_user_password__ok__nominal_case(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") assert u.password is None # 8 char u = api.update(user=u, password="******") assert u.password assert u.validate_password("password") # 16 char u = api.update(user=u, password="******" * 2) assert u.password assert u.validate_password("password" * 2)
def test_unit__user_with_email_exists__ok__nominal_case(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bibi@bibi') api.update(u, 'bibi', 'bibi@bibi', 'password', do_save=True) transaction.commit() eq_(True, api.user_with_email_exists('bibi@bibi')) eq_(False, api.user_with_email_exists('unknown'))
def test_unit__update_user_lang__err__too_long_lang(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') with pytest.raises(TracimValidationFailed): lang = 'n' * 4 u = api.update(user=u, lang=lang) lang = 'n' * 3 u = api.update(user=u, lang=lang)
def test_unit__user_with_email_exists__ok__nominal_case(self): api = UserApi( current_user=None, session=self.session, config=self.config, ) u = api.create_minimal_user('bibi@bibi') api.update(u, 'bibi', 'bibi@bibi', 'pass', do_save=True) transaction.commit() eq_(True, api.user_with_email_exists('bibi@bibi')) eq_(False, api.user_with_email_exists('unknown'))
def test_unit__update_user_password__err__too_long_password(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') with pytest.raises(TracimValidationFailed): password = '******' * 513 u = api.update(user=u, password=password) password = '******' * 512 u = api.update(user=u, password=password)
def test_unit__update_user_public_name__err__too_long_password(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') with pytest.raises(TracimValidationFailed): name = 'n' * 256 u = api.update(user=u, name=name) name = 'n' * 255 u = api.update(user=u, name=name)
def test_unit__update_user_password__err__too_short_password(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') # 5 char with pytest.raises(TracimValidationFailed): u = api.update(user=u, password='******') # 6 char u = api.update(user=u, password='******')
def test_unit__update_timezone__too_long_timezone(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') with pytest.raises(TracimValidationFailed): timezone = 't' * 33 u = api.update(user=u, timezone=timezone) timezone = 't' * 32 u = api.update(user=u, timezone=timezone)
def test_unit__update_user_public_name__err__too_short_public_name(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') # 2 char with pytest.raises(TracimValidationFailed): u = api.update(user=u, name='nn') # 3 char u = api.update(user=u, name='nnn') assert u.display_name == 'nnn'
def test_unit__update_user_lang__err__too_short_lang(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') # 1 char with pytest.raises(TracimValidationFailed): u = api.update(user=u, lang='f') # 2 char u = api.update(user=u, lang='fr') assert u.lang == 'fr'
def test_unit__create_minimal_user_and_update__ok__nominal_case(self): api = UserApi( current_user=None, session=self.session, config=self.config, ) u = api.create_minimal_user('bob@bob') api.update(u, 'bob', 'bob@bob', 'pass', do_save=True) nu = api.get_one_by_email('bob@bob') assert nu is not None assert nu.email == 'bob@bob' assert nu.display_name == 'bob' assert nu.validate_password('pass')
def test_unit__create_minimal_user_and_update__ok__nominal_case(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') api.update(u, 'bob', 'bob@bob', 'password', do_save=True) nu = api.get_one_by_email('bob@bob') assert nu is not None assert nu.email == 'bob@bob' assert nu.display_name == 'bob' assert nu.validate_password('password')
def test_get_one_by_email(self): api = UserApi( current_user=None, session=self.session, config=self.config, ) u = api.create_minimal_user('bibi@bibi') self.session.flush() api.update(u, 'bibi', 'bibi@bibi', 'pass', do_save=True) uid = u.user_id transaction.commit() eq_(uid, api.get_one_by_email('bibi@bibi').user_id)
def test_get_one_by_email(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bibi@bibi') self.session.flush() api.update(u, 'bibi', 'bibi@bibi', 'password', do_save=True) uid = u.user_id transaction.commit() eq_(uid, api.get_one_by_email('bibi@bibi').user_id)
def test_unit__update_user_email__err__too_long_email(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_minimal_user("bob@bob") # 256 char chars = "o" * (256 - 6) with pytest.raises(TracimValidationFailed): email = "b{}b@bob".format(chars) u = api.update(user=u, email=email) # 255 char chars = "o" * (255 - 6) email = "b{}b@bob".format(chars) u = api.update(user=u, email=email) assert u.email == email
def test_unit__update_user_public_name__ok__nominal_case(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') assert u.display_name == 'bob' # 8 char u = api.update(user=u, name='John Doe') assert u.display_name == 'John Doe' # 16 char u = api.update(user=u, name='John Doe'*2) assert u.display_name == 'John Doe'*2
def test_unit__update_user_lang_name__ok__nominal_case(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') assert u.lang is None # 2 char u = api.update(user=u, lang='fr') assert u.lang == 'fr' # 3 char u = api.update(user=u, lang='fre') assert u.lang == 'fre'
def set_allowed_space(self, context, request: TracimRequest, hapic_data=None): """ set user allowed_space """ app_config = request.registry.settings["CFG"] # type: CFG uapi = UserApi( current_user=request.current_user, session=request.dbsession, config=app_config # User ) uapi.update( user=request.candidate_user, auth_type=request.candidate_user.auth_type, allowed_space=hapic_data.body.allowed_space, do_save=True, ) return
def test_unit__update_user_email__err__too_short_email(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') # 2 char with pytest.raises(TracimValidationFailed): u = api.update(user=u, email='b@') # 3 char u = api.update(user=u, email='b@b') assert u.email == 'b@b'
def set_profile(self, context, request: TracimRequest, hapic_data=None): """ set user profile """ app_config = request.registry.settings["CFG"] # type: CFG uapi = UserApi( current_user=request.current_user, session=request.dbsession, config=app_config # User ) profile = Profile.get_profile_from_slug(hapic_data.body.profile) uapi.update( user=request.candidate_user, auth_type=request.candidate_user.auth_type, profile=profile, do_save=True, ) return
def test_unit__update_user_password__ok__nominal_case(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') assert u.password is None # 8 char u = api.update(user=u, password='******') assert u.password assert u.validate_password('password') # 16 char u = api.update(user=u, password='******'*2) assert u.password assert u.validate_password('password'*2)
def test_unit__update_user_email__err__too_long_email(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') # 256 char chars = 'o' * (256 - 6) with pytest.raises(TracimValidationFailed): email = 'b{}b@bob'.format(chars) u = api.update(user=u, email=email) # 255 char chars = 'o' * (255 - 6) email = 'b{}b@bob'.format(chars) u = api.update(user=u, email=email) assert u.email==email
def test_unit__update_user_email__ok__nominal_case(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') assert u.email == 'bob@bob' u = api.update(user=u, email='bib@bib') assert u.email == 'bib@bib'
def test_unit__update_timezone__ok__nominal_case(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') assert u.timezone is None u = api.update(user=u, timezone='Europe/Paris') assert u.timezone == 'Europe/Paris'
def test_unit__update_user_email__err__wrong_format(self): api = UserApi( current_user=None, session=self.session, config=self.app_config, ) u = api.create_minimal_user('bob@bob') # 2 char with pytest.raises(EmailValidationFailed): u = api.update(user=u, email='b+b')
def set_profile(self, context, request: TracimRequest, hapic_data=None): """ set user profile """ app_config = request.registry.settings['CFG'] uapi = UserApi( current_user=request.current_user, # User session=request.dbsession, config=app_config, ) gapi = GroupApi( current_user=request.current_user, # User session=request.dbsession, config=app_config, ) groups = [gapi.get_one_with_name(hapic_data.body.profile)] uapi.update( user=request.candidate_user, groups=groups, do_save=True, ) return
def test_unit_update__ok_external_auth_ldap(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_user( email="bob@bob", password=None, name="bob", auth_type=AuthType.LDAP, timezone="+2", lang="en", do_save=True, do_notify=False, ) api.update( email="bob@bob", user=u, name="bobi", password=None, auth_type=AuthType.LDAP, timezone="-1", lang="fr", do_save=True, ) assert u.display_name == "bobi"
def test_unit_update__err__external_auth_ldap_set_email(self): api = UserApi(current_user=None, session=self.session, config=self.app_config) u = api.create_user( email="bob@bob", password=None, name="bob", auth_type=AuthType.LDAP, timezone="+2", lang="en", do_save=True, do_notify=False, ) with pytest.raises(ExternalAuthUserEmailModificationDisallowed): api.update( email="bob@bob1", user=u, name="bobi", password=None, auth_type=AuthType.LDAP, timezone="-1", lang="fr", do_save=True, )
def set_profile(self, context, request: TracimRequest, hapic_data=None): """ set user profile """ app_config = request.registry.settings['CFG'] uapi = UserApi( current_user=request.current_user, # User session=request.dbsession, config=app_config, ) gapi = GroupApi( current_user=request.current_user, # User session=request.dbsession, config=app_config, ) groups = [gapi.get_one_with_name(hapic_data.body.profile)] uapi.update( user=request.candidate_user, auth_type=request.candidate_user.auth_type, groups=groups, do_save=True, ) return
def set_account_infos(self, context, request: TracimRequest, hapic_data=None): """ Set user info data """ app_config = request.registry.settings['CFG'] uapi = UserApi( current_user=request.current_user, # User session=request.dbsession, config=app_config, ) user = uapi.update( request.current_user, name=hapic_data.body.public_name, timezone=hapic_data.body.timezone, lang=hapic_data.body.lang, do_save=True ) return uapi.get_user_with_context(user)