Exemple #1
0
    def test_create_complaint_forbidden_violator(self):
        user = MyUser('osx11')
        user.create(True, False, 'pass', 'fist', 'last')
        user.manage_access(['staff'])

        with self.assertRaises(FieldContainsForbiddenException):
            self.ticket.create_complaint(violator_nickname='osx11', description='test_description', evidence=None)
Exemple #2
0
    def test_resend_multiple(self):
        schedule.clear()

        user = MyUser('authorized_2')
        user.create(True, False, 'pass', 'fist', 'last')
        user.manage_access(['control'])

        ticket1 = Tickets(issuer_nickname='test',
                          server='server',
                          email='*****@*****.**',
                          ip_address='127.0.0.2', )

        ticket1.create()

        ticket2 = Tickets(issuer_nickname='test',
                          server='server',
                          email='*****@*****.**',
                          ip_address='127.0.0.2', )

        ticket2.create()

        ticket_2_current_time = ticket2.datetime

        schedule.jobs[0].tag('TICKET 1')
        schedule.jobs[1].tag('TICKET 2')

        sleep(2)

        schedule.jobs[0].run()
        schedule.clear('TICKET 1')

        self.assertEquals(dt.strftime(dt.now(), '%Y-%m-%d %H:%M:%S'), ticket1.datetime)
        self.assertEquals(ticket_2_current_time, ticket2.datetime)

        self.assertEquals(len(schedule.jobs), 2)
Exemple #3
0
class TestViews(TestCase):
    def setUp(self):
        self.username = '******'
        self.moderator = MyUser(self.username)
        self.moderator.create(True, False, 'pass', 'first', 'last')
        self.moderator.manage_access(['moders'])
        self.year = dt.now().isocalendar()[0]

    @staticmethod
    def __get_current_week():
        return dt.now().isocalendar()[1]

    def __create_report_with_custom_week(self, week):
        report = Reports(violator_nickname='violator',
                         violator_donate='donate',
                         violation='violation',
                         comment='comment',
                         server='server',
                         evidence_text='evidence_text',
                         pinned_admin=self.username,
                         date=dt.now().strftime('%Y-%m-%d %H:%M:%S'),
                         week=week,
                         year=self.year,
                         isImportant=False,
                         isWarning=False,
                         files=None,
                         dialogue=None)
        return report

    def test_weekly(self):
        report = self.__create_report_with_custom_week(
            self.__get_current_week() - 1)
        report.save()

        report = self.__create_report_with_custom_week(
            self.__get_current_week() - 1)
        report.save()

        report = self.__create_report_with_custom_week(
            self.__get_current_week())
        report.save()

        client = Client()
        client.login(username=self.username, password='******')

        response = client.get(reverse('weekly'))

        filled_weeks = response.context['filled_weeks']

        self.assertEquals(
            filled_weeks[self.__get_current_week()][1]['moderator'][0], 1)
        self.assertEquals(
            filled_weeks[self.__get_current_week()][1]['moderator'][1], -1)
        self.assertEquals(
            filled_weeks[self.__get_current_week() - 1][1]['moderator'][0], 2)
        self.assertEquals(
            filled_weeks[self.__get_current_week() - 1][1]['moderator'][1], 2)
Exemple #4
0
    def test_create_complaint_forbidden_issuer(self):
        user = MyUser('osx11')
        user.create(True, False, 'pass', 'fist', 'last')
        user.manage_access(['staff'])

        ticket = Tickets(issuer_nickname='osx11',
                         server='server',
                         email='*****@*****.**',
                         ip_address='127.0.0.3',
                         files=None)

        with self.assertRaises(FieldContainsForbiddenException):
            ticket.create_complaint(violator_nickname='test', description='desc', evidence=None)
Exemple #5
0
    def setUp(self):
        user = MyUser('test')
        user.create(True, False, 'pass', 'fist', 'last')
        user.manage_access(['control'])

        self.ticket = Tickets(
            issuer_nickname='test',
            server='test_server',
            email='*****@*****.**',
            ip_address='127.0.0.1',
            files=None
        )

        self.ticket.create()
Exemple #6
0
    def test_resend(self):
        ticket = Tickets(issuer_nickname='test',
                         server='server',
                         email='*****@*****.**',
                         ip_address='127.0.0.2',)

        ticket.create()
        schedule.clear()

        user = MyUser('authorized_2')
        user.create(True, False, 'pass', 'fist', 'last')
        user.manage_access(['control'])

        current_pinned_admin = ticket.pinned_admin

        ticket.resend()

        self.assertNotEquals(current_pinned_admin, ticket.pinned_admin)
        self.assertTrue(MyUser(ticket.pinned_admin.split(' ')[0]).has_access('control'))
        self.assertEquals(dt.strftime(dt.now(), '%Y-%m-%d %H:%M:%S'), ticket.datetime)
        self.assertEquals(len(schedule.jobs), 1)
        self.assertTrue(ticket.secret_key in schedule.jobs[0].tags)
class TestClass(TestCase):
    USERNAME = '******'
    TRACK_FOR_STAT = False
    DARK_THEME = False
    PASSWORD = '******'
    FIRST_NAME = 'test_user_name'
    LAST_NAME = 'test_user_surname'

    def create_user(self):
        self.user.create(track_for_stat=self.TRACK_FOR_STAT,
                         dark_theme=self.DARK_THEME,
                         password=self.PASSWORD,
                         first_name=self.FIRST_NAME,
                         last_name=self.LAST_NAME)

    def setUp(self):
        self.user = MyUser(self.USERNAME)

    def test_create_repeatedly(self):
        with self.assertRaises(UserIsAlreadyExistsException):
            self.create_user()
            self.create_user()

    def test_create_normally(self):
        self.create_user()

        self.assertEquals(self.user.user.username, self.USERNAME)
        self.assertEquals(self.user.user.userprofile.track_for_stat,
                          self.TRACK_FOR_STAT)
        self.assertEquals(self.user.user.first_name, self.FIRST_NAME)
        self.assertEquals(self.user.user.last_name, self.LAST_NAME)

    def test_remove_nonexistent(self):
        with self.assertRaises(UserNotFoundException):
            self.user.remove()

    def test_manage_access_nonexistent(self):
        with self.assertRaises(UserNotFoundException):
            self.user.manage_access('control')

    def test_manage_access_normally(self):
        self.create_user()

        self.user.manage_access(['control'])
        self.assertTrue(self.user.has_access('control'))

        self.user.manage_access(['logs', 'moders'])
        self.assertTrue(self.user.has_access('logs'))
        self.assertTrue(self.user.has_access('moders'))

    def test_manage_rank_nonexistent(self):
        with self.assertRaises(UserNotFoundException):
            self.user.manage_rank('rank2')

    def test_manage_rank_nonexistent_rank(self):
        self.create_user()

        with self.assertRaises(RankNotFoundException):
            self.user.manage_rank('nonexistent_rank')

    def test_manage_rank_normally(self):
        self.create_user()

        rank_data = loads(self.user.user.userprofile.ranks)

        self.assertEquals(rank_data['rank'], 'rank0')

        self.user.manage_rank('rank4')

        rank_data = loads(self.user.user.userprofile.ranks)

        self.assertEquals(rank_data['rank'], 'rank4')

    def test_manage_additional_ranks_nonexistent(self):
        with self.assertRaises(UserNotFoundException):
            self.user.manage_additional_ranks(['paperwork'])

    def test_manage_additional_ranks_nonexistent_rank(self):
        self.create_user()

        with self.assertRaises(RankNotFoundException):
            self.user.manage_additional_ranks(['nonexistent_rank'])

    def test_manage_additional_ranks_normally(self):
        self.create_user()

        rank_data = loads(self.user.user.userprofile.ranks)

        self.assertEquals(len(rank_data['additional']), 0)

        self.user.manage_additional_ranks(['paperwork', 'expert'])

        rank_data = loads(self.user.user.userprofile.ranks)

        self.assertTrue('paperwork' in rank_data['additional'])
        self.assertTrue('expert' in rank_data['additional'])

    def test_manage_additional_ranks_save_automatic_assigned_ranks(self):
        self.create_user()

        self.user.manage_additional_ranks(
            ['expert', 'publicaccept', 'online500'])
        self.user.manage_additional_ranks(['paperwork'])

        self.assertEquals(self.user.get_additional_ranks_names_only(),
                          ['paperwork', 'online500', 'publicaccept'])

    def test_toggle_tracking_nonexistent(self):
        with self.assertRaises(UserNotFoundException):
            self.user.toggle_tracking()

    def test_toggle_tracking_normally(self):
        self.create_user()

        self.user.toggle_tracking()
        self.assertEquals(self.user.user.userprofile.track_for_stat,
                          False if self.TRACK_FOR_STAT else True)

        self.user.toggle_tracking()
        self.assertEquals(self.user.user.userprofile.track_for_stat,
                          True if self.TRACK_FOR_STAT else False)

    def test_toggle_dark_theme_nonexistent(self):
        with self.assertRaises(UserNotFoundException):
            self.user.toggle_dark_theme()

    def test_toggle_dark_theme_normally(self):
        self.create_user()

        self.user.toggle_dark_theme()
        self.assertEquals(self.user.user.userprofile.dark_theme,
                          False if self.DARK_THEME else True)

        self.user.toggle_dark_theme()
        self.assertEquals(self.user.user.userprofile.dark_theme,
                          True if self.DARK_THEME else False)

    def test_get_tracked_for_stat(self):
        self.create_user()
        self.user.toggle_tracking()

        authorized_users = get_tracked_for_stat()
        self.assertEquals(
            authorized_users,
            {self.user.username: self.user.user.userprofile.color})

    def test_rating_incorrect_string(self):
        self.create_user()

        with self.assertRaises(ValueError):
            self.user.rate('5')

    def test_rating_incorrect_float(self):
        self.create_user()

        with self.assertRaises(ValueError):
            self.user.rate(5.0)

    def test_rating_incorrect_more_than_five(self):
        self.create_user()

        with self.assertRaises(ValueError):
            self.user.rate(6)

    def test_rating_incorrect_less_than_one(self):
        self.create_user()

        with self.assertRaises(ValueError):
            self.user.rate(0)

    def test_rating_normal(self):
        self.create_user()

        self.assertEquals(self.user.get_rating(), 0.0)
        self.assertEquals(self.user.get_total_vote(), 0)
        self.assertEquals(self.user.get_vote_count(), 0)

        self.user.rate(3)

        self.assertEquals(self.user.get_rating(), 3.0)
        self.assertEquals(self.user.get_total_vote(), 3)
        self.assertEquals(self.user.get_vote_count(), 1)

        self.user.rate(5)

        self.assertEquals(self.user.get_rating(), 4.0)
        self.assertEquals(self.user.get_total_vote(), 8)
        self.assertEquals(self.user.get_vote_count(), 2)

        self.user.rate(2)

        self.assertEquals(self.user.get_rating(), 3.3)
        self.assertEquals(self.user.get_total_vote(), 10)
        self.assertEquals(self.user.get_vote_count(), 3)

    def test_add_online_negative(self):
        self.create_user()

        with self.assertRaises(ValueError):
            self.user.add_online(-5)

    def test_add_online_normal(self):
        self.create_user()

        self.assertEquals(self.user.get_online(), 0)

        self.user.add_online(5)
        self.assertEquals(self.user.get_online(), 5)

        self.user.add_online(10)
        self.assertEquals(self.user.get_online(), 15)

    def test_add_online_automatic_rank_assign(self):
        self.create_user()

        self.user.add_online(502)
        self.assertEquals(self.user.get_additional_ranks_names_only(),
                          ['online500'])

        self.user.add_online(502)
        self.assertEquals(self.user.get_additional_ranks_names_only(),
                          ['online1000'])

        self.user.manage_additional_ranks(['paperwork', 'expert'])

        self.user.add_online(1000)
        self.assertEquals(self.user.get_additional_ranks_names_only(),
                          ['paperwork', 'expert', 'online2000'])
Exemple #8
0
 def setUp(self):
     user = MyUser('test')
     user.create(True, False, 'pass', 'fist', 'last')
     user.manage_access(['control'])
Exemple #9
0
 def __create_authorized_user():
     user = MyUser('authorized_user')
     user.create(True, False, 'pass', 'first', 'last')
     user.manage_access(['control'])
     return user