示例#1
0
文件: team.py 项目: thomaserlang/TLog
    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),
        )
示例#2
0
文件: team.py 项目: thomaserlang/TLog
    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),
        )
示例#3
0
    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)
示例#4
0
 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')
示例#5
0
    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)
示例#6
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
示例#7
0
文件: team.py 项目: thomaserlang/TLog
 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,
     )
示例#8
0
    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
示例#9
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
示例#10
0
文件: user.py 项目: thomaserlang/TLog
    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
示例#11
0
    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)
示例#12
0
文件: team.py 项目: thomaserlang/TLog
    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),
        )
示例#13
0
文件: team.py 项目: thomaserlang/TLog
    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),
        )
示例#14
0
文件: team.py 项目: thomaserlang/TLog
 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,
     )
示例#15
0
    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)
示例#16
0
 def test_get(self):
     team = self.new_team()
     team = Team.get(id_=team.id)
     self.assertTeam(team)
示例#17
0
 def test_get_by_name(self):
     team = self.new_team()
     team = Team.get_by_name(name=team.name)
     self.assertTeam(team)
示例#18
0
    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)
示例#19
0
 def new_team(self):
     return Team.new(name=u'Test team ø', )
示例#20
0
 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')
示例#21
0
 def test_get_by_name(self):
     team = self.new_team()
     team = Team.get_by_name(name=team.name)
     self.assertTeam(team)
示例#22
0
 def test_get(self):
     team = self.new_team()
     team = Team.get(id_=team.id)
     self.assertTeam(team)
示例#23
0
 def new_team(self):
     return Team.new(
         name=u'Test team ø',
     )