def post(self, team_id): ''' Validates and updates the team. Redirects to the new team if successful. :param team_id: int ''' team = Team.get(id_=team_id) if not team: self.error(404, 'Team not found') form = forms.Team(self.request.arguments) if form.validate(): Team.update( id_=team_id, name=form.name.data, ) self.redirect('/team/{}'.format(team.id)) return self.render( 'team.html', title='New team', form=form, edit=True, users=Users.get(), team=team, members=Users_team.get(team_id=team_id), )
def test_send(self): ''' Creates 3 users, 2 teams and 2 filters. User 1 and 2 is a member of team 1 and user 2 is a member of team 2. Team 1 has a relation to both filter 1 and 2. Team 2 has a relation to filter 2. User 1 and 3 should receive an email and User 2 should not. ''' user = User.new(name=u'Test user 1', email='*****@*****.**', notification_types={ 'send_email': { 'data': '*****@*****.**', 'enabled': True, } }) user2 = User.new(name=u'Test user 2', email='*****@*****.**', notification_types={ 'send_email': { 'data': '*****@*****.**', 'enabled': False, } }) user3 = User.new(name=u'Test user 3', email='*****@*****.**', notification_types={ 'send_email': { 'data': '*****@*****.**', 'enabled': True, } }) team = Team.new(name=u'Test team 1', ) team2 = Team.new(name=u'Test team 2', ) filter1 = Filter.new( name=u'Test filter 1', data_yaml='notify: true', ) filter2 = Filter.new( name=u'Test filter 2', data_yaml='notify: false', ) # create a relations User_team.new(team_id=team.id, user_id=user.id) User_team.new(team_id=team2.id, user_id=user2.id) User_team.new(team_id=team.id, user_id=user3.id) Filter_team.new(filter_id=filter1.id, team_id=team.id) Filter_team.new(filter_id=filter2.id, team_id=team.id) Filter_team.new(filter_id=filter2.id, team_id=team2.id) Mock_notifier.email_send = False Notifier.send(message='Test notification', filters=[ filter1, filter2, ]) self.assertTrue(Mock_notifier.email_send)
def test_update(self): team = self.new_team() Team.update( id_=team.id, name='Test 2' ) team = Team.get(id_=team.id) self.assertEqual(team.name, u'Test 2')
def test(self): # new filter_ = Filter.new(name=u'Test filter ø', data_yaml='') team = Team.new(name=u'Test team ø') self.assertTrue( Filter_team.new( filter_id=filter_.id, team_id=team.id, ) ) # get teams by filter_id teams = Filter_team.get_teams_by_filter_id(filter_id=filter_.id) self.assertEqual(len(teams), 1) self.assertEqual(team.id, teams[0].id) # delete self.assertTrue( Filter_team.delete( filter_id=filter_.id, team_id=team.id, ) ) teams = Filter_team.get_teams_by_filter_id(filter_id=filter_.id) self.assertEqual(len(teams), 0)
def get_teams_by_filter_id(cls, filter_id): ''' Retrieves a list of teams from a filter_id. :param filter_id: int :returns: list of tlog.base.team.Team ''' with new_session() as session: query = session.query( models.Filter_team, models.Team, ).filter( models.Filter_team.filter_id==filter_id, models.Team.id==models.Filter_team.team_id, ).all() teams = [] for team in query: teams.append(Team._format_from_query(team.Team)) return teams
def post(self): ''' Validates and creates a new team. Redirects to the new team if successful. ''' form = forms.Team(self.request.arguments) if form.validate(): try: team = Team.new(name=form.name.data, ) self.redirect('/team/{}'.format(team.id)) return except Team_exception_duplicate_name as e: form.name.errors.append(e.message) self.render( 'team.html', title='New team', form=form, edit=False, )
def get(cls, user_id): ''' Retrieves a list of teams a given users is a member of. :param user_id: int :returns: list of tlog.base.team.Team ''' with new_session() as session: query = session.query( models.User_team, models.Team, ).filter( models.User_team.user_id == user_id, models.Team.id == models.User_team.team_id, ).all() teams = [] for team in query: teams.append(Team._format_from_query(team.Team)) return teams
def get_teams_by_filter_id(cls, filter_id): ''' Retrieves a list of teams from a filter_id. :param filter_id: int :returns: list of tlog.base.team.Team ''' with new_session() as session: query = session.query( models.Filter_team, models.Team, ).filter( models.Filter_team.filter_id == filter_id, models.Team.id == models.Filter_team.team_id, ).all() teams = [] for team in query: teams.append(Team._format_from_query(team.Team)) return teams
def get(cls, user_id): ''' Retrieves a list of teams a given users is a member of. :param user_id: int :returns: list of tlog.base.team.Team ''' with new_session() as session: query = session.query( models.User_team, models.Team, ).filter( models.User_team.user_id==user_id, models.Team.id==models.User_team.team_id, ).all() teams = [] for team in query: teams.append(Team._format_from_query(team.Team)) return teams
def test_delete(self): user = self.new_user() team = Team.new( name='Test team', ) self.assertTrue( User_team.new( user_id=user.id, team_id=team.id, ) ) teams = User_teams.get(user_id=user.id) self.assertEqual(len(teams), 1) self.assertEqual(teams[0].id, team.id) self.assertTrue( User_team.delete(user_id=user.id, team_id=team.id) ) teams = User_teams.get(user_id=user.id) self.assertEqual(len(teams), 0)
def get(self, team_id): ''' Renders the edit team form. :param team_id: int ''' team = Team.get(id_=team_id) if not team: self.error(404, 'Team not found') form = forms.Team() form.name.data = team.name self.render( 'team.html', title=u'Team: {}'.format(team.name), form=form, edit=True, users=Users.get(), team=team, members=Users_team.get(team_id=team_id), )
def post(self): ''' Validates and creates a new team. Redirects to the new team if successful. ''' form = forms.Team(self.request.arguments) if form.validate(): try: team = Team.new( name=form.name.data, ) self.redirect('/team/{}'.format(team.id)) return except Team_exception_duplicate_name as e: form.name.errors.append(e.message) self.render( 'team.html', title='New team', form=form, edit=False, )
def test_new(self): user = self.new_user() team = Team.new( name='Test team', ) self.assertTrue( User_team.new( user_id=user.id, team_id=team.id, ) ) teams = User_teams.get(user_id=user.id) self.assertEqual(len(teams), 1) self.assertEqual(teams[0].id, team.id) users = Users_team.get(team_id=team.id) self.assertEqual(len(users), 1) self.assertEqual(users[0].id, user.id) users = Users_team.get_by_team_list(teams=[team]) self.assertEqual(len(users), 1) self.assertEqual(users[0].id, user.id)
def test_get(self): team = self.new_team() team = Team.get(id_=team.id) self.assertTeam(team)
def test_get_by_name(self): team = self.new_team() team = Team.get_by_name(name=team.name) self.assertTeam(team)
def test_send(self): ''' Creates 3 users, 2 teams and 2 filters. User 1 and 2 is a member of team 1 and user 2 is a member of team 2. Team 1 has a relation to both filter 1 and 2. Team 2 has a relation to filter 2. User 1 and 3 should receive an email and User 2 should not. ''' user = User.new( name=u'Test user 1', email='*****@*****.**', notification_types={ 'send_email': { 'data': '*****@*****.**', 'enabled': True, } } ) user2 = User.new( name=u'Test user 2', email='*****@*****.**', notification_types={ 'send_email': { 'data': '*****@*****.**', 'enabled': False, } } ) user3 = User.new( name=u'Test user 3', email='*****@*****.**', notification_types={ 'send_email': { 'data': '*****@*****.**', 'enabled': True, } } ) team = Team.new( name=u'Test team 1', ) team2 = Team.new( name=u'Test team 2', ) filter1 = Filter.new( name=u'Test filter 1', data_yaml='notify: true', ) filter2 = Filter.new( name=u'Test filter 2', data_yaml='notify: false', ) # create a relations User_team.new( team_id=team.id, user_id=user.id ) User_team.new( team_id=team2.id, user_id=user2.id ) User_team.new( team_id=team.id, user_id=user3.id ) Filter_team.new( filter_id=filter1.id, team_id=team.id ) Filter_team.new( filter_id=filter2.id, team_id=team.id ) Filter_team.new( filter_id=filter2.id, team_id=team2.id ) Mock_notifier.email_send = False Notifier.send( message='Test notification', filters=[ filter1, filter2, ] ) self.assertTrue(Mock_notifier.email_send)
def new_team(self): return Team.new(name=u'Test team ø', )
def test_update(self): team = self.new_team() Team.update(id_=team.id, name='Test 2') team = Team.get(id_=team.id) self.assertEqual(team.name, u'Test 2')
def new_team(self): return Team.new( name=u'Test team ø', )