def test_upload_with_affectation_to_unknown_user_with_team( self, app, lecture_an, user_ronan, team_zam): from zam_repondeur.models import Amendement, DBSession, User from zam_repondeur.models.events.amendement import AmendementTransfere with transaction.manager: DBSession.add(user_ronan) user_ronan.teams.append(team_zam) DBSession.add(team_zam) team_zam_users = team_zam.users amendement = DBSession.query(Amendement).filter( Amendement.num == 666).first() assert amendement.location.user_table is None amendement = DBSession.query(Amendement).filter( Amendement.num == 999).first() assert amendement.location.user_table is None user_melodie = (DBSession.query(User).filter_by( email="*****@*****.**").first()) assert user_melodie is None assert "*****@*****.**" not in { user.email for user in team_zam_users } self._upload_csv(app, "reponses_with_affectation.csv", user=user_ronan) DBSession.add(team_zam) DBSession.refresh(team_zam) # Check the new user was created user_melodie = (DBSession.query(User).filter_by( email="*****@*****.**").first()) assert user_melodie is not None assert user_melodie.email == "*****@*****.**" assert user_melodie.name == "Mélodie Dahi" # Check the new user was added to the team assert "*****@*****.**" in { user.email for user in team_zam.users } assert user_melodie.teams == [team_zam] # Check the amendement is on the new user's table amendement = DBSession.query(Amendement).filter( Amendement.num == 666).first() assert amendement.location.user_table.user is user_melodie events = {type(event): event for event in amendement.events} assert AmendementTransfere in events amendement = DBSession.query(Amendement).filter( Amendement.num == 999).first() assert amendement.location.user_table is None events = {type(event): event for event in amendement.events} assert AmendementTransfere not in events
def test_upload_backup_with_affectation_to_unknown_user_with_team( self, app, lecture_an, user_ronan, team_zam): from zam_repondeur.models import DBSession, Amendement, User from zam_repondeur.models.events.amendement import AmendementTransfere with transaction.manager: lecture_an.owned_by_team = team_zam user_ronan.teams.append(team_zam) DBSession.add(user_ronan) amendement = DBSession.query(Amendement).filter( Amendement.num == 666).first() assert amendement.user_table is None amendement = DBSession.query(Amendement).filter( Amendement.num == 999).first() assert amendement.user_table is None user_david2 = DBSession.query(User).filter_by( email="*****@*****.**").first() assert user_david2 is None assert "*****@*****.**" not in { user.email for user in team_zam.users } self._upload_backup(app, "backup_with_affectation.json", user=user_ronan, team=team_zam) DBSession.add(team_zam) DBSession.refresh(team_zam) # Check the new user was created user_david2 = DBSession.query(User).filter_by( email="*****@*****.**").first() assert user_david2 is not None assert user_david2.email == "*****@*****.**" assert user_david2.name == "David2" # Check the new user was added to the team assert "*****@*****.**" in {user.email for user in team_zam.users} assert user_david2.teams == [team_zam] # Check the amendement is on the new user's table amendement = DBSession.query(Amendement).filter( Amendement.num == 666).first() assert amendement.user_table.user is user_david2 events = {type(event): event for event in amendement.events} assert AmendementTransfere in events amendement = DBSession.query(Amendement).filter( Amendement.num == 999).first() assert amendement.user_table is None events = {type(event): event for event in amendement.events} assert AmendementTransfere not in events