def handle(self, *args, **options):
        self.stdout.write("\nBuilding active posters ranking...")

        start_time = time()
        build_active_posters_ranking()
        end_time = time() - start_time

        self.stdout.write("Finished after %.2fs" % end_time)
Exemple #2
0
    def test_filled_list(self):
        """filled list is served"""
        post_thread(self.category, poster=self.user)
        self.user.posts = 1
        self.user.save()

        build_active_posters_ranking()

        response = self.client.get(self.link)
        self.assertEqual(response.status_code, 200)
        self.assertIn(self.user.username, response.content)
        self.assertIn('"is_online":true', response.content)
        self.assertIn('"is_offline":false', response.content)

        self.logout_user()
        build_active_posters_ranking()

        response = self.client.get(self.link)
        self.assertEqual(response.status_code, 200)
        self.assertIn(self.user.username, response.content)
        self.assertIn('"is_online":false', response.content)
        self.assertIn('"is_offline":true', response.content)
Exemple #3
0
    def test_filled_list(self):
        """filled list is served"""
        post_thread(self.category, poster=self.user)
        self.user.posts = 1
        self.user.save()

        build_active_posters_ranking()

        response = self.client.get(self.link)
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, self.user.username)
        self.assertContains(response, '"is_online":true')
        self.assertContains(response, '"is_offline":false')

        self.logout_user()
        build_active_posters_ranking()

        response = self.client.get(self.link)
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, self.user.username)
        self.assertContains(response, '"is_online":false')
        self.assertContains(response, '"is_offline":true')
Exemple #4
0
    def test_active_posters_list(self):
        """active posters page has no showstoppers"""
        category = Category.objects.get(slug='first-category')
        view_link = reverse('misago:users-active-posters')

        response = self.client.get(view_link)
        self.assertEqual(response.status_code, 200)

        # Create 50 test users and see if errors appeared
        for i in range(50):
            user = UserModel.objects.create_user(
                'Bob%s' % i,
                '*****@*****.**' % i,
                'Pass.123',
                posts=12345,
            )
            post_thread(category, poster=user)

        build_active_posters_ranking()

        response = self.client.get(view_link)
        self.assertEqual(response.status_code, 200)
    def test_get_active_posters_ranking(self):
        """get_active_posters_ranking returns list of active posters"""
        # no posts, empty tanking
        empty_ranking = get_active_posters_ranking()

        self.assertEqual(empty_ranking['users'], [])
        self.assertEqual(empty_ranking['users_count'], 0)

        # other user
        other_user = UserModel.objects.create_user("OtherUser", "*****@*****.**", "pass123")

        other_user.posts = 1
        other_user.save()

        post_thread(self.category, poster=other_user)

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [other_user])
        self.assertEqual(ranking['users_count'], 1)

        # two users in ranking
        post_thread(self.category, poster=self.user)
        post_thread(self.category, poster=self.user)

        self.user.posts = 2
        self.user.save()

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [self.user, other_user])
        self.assertEqual(ranking['users_count'], 2)

        self.assertEqual(ranking['users'][0].score, 2)
        self.assertEqual(ranking['users'][1].score, 1)

        # disabled users are not ranked
        disabled = UserModel.objects.create_user("DisabledUser", "*****@*****.**", "pass123")

        disabled.is_active = False
        disabled.save()

        post_thread(self.category, poster=disabled)
        post_thread(self.category, poster=disabled)
        post_thread(self.category, poster=disabled)

        disabled.posts = 3
        disabled.save()

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [self.user, other_user])
        self.assertEqual(ranking['users_count'], 2)

        self.assertEqual(ranking['users'][0].score, 2)
        self.assertEqual(ranking['users'][1].score, 1)
    def test_get_active_posters_ranking(self):
        """get_active_posters_ranking returns list of active posters"""
        # no posts, empty tanking
        empty_ranking = get_active_posters_ranking()

        self.assertEqual(empty_ranking['users'], [])
        self.assertEqual(empty_ranking['users_count'], 0)

        # other user
        User = get_user_model()
        other_user = User.objects.create_user("OtherUser", "*****@*****.**",
                                              "pass123")

        other_user.posts = 1
        other_user.save()

        post_thread(self.category, poster=other_user)

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [other_user])
        self.assertEqual(ranking['users_count'], 1)

        # two users in ranking
        post_thread(self.category, poster=self.user)
        post_thread(self.category, poster=self.user)

        self.user.posts = 2
        self.user.save()

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [self.user, other_user])
        self.assertEqual(ranking['users_count'], 2)

        self.assertEqual(ranking['users'][0].score, 2)
        self.assertEqual(ranking['users'][1].score, 1)
    def test_get_active_posters_ranking(self):
        """get_active_posters_ranking returns list of active posters"""
        # no posts, empty tanking
        empty_ranking = get_active_posters_ranking()

        self.assertEqual(empty_ranking['users'], [])
        self.assertEqual(empty_ranking['users_count'], 0)

        # other user
        User = get_user_model()
        other_user = User.objects.create_user(
            "OtherUser", "*****@*****.**", "pass123")

        other_user.posts = 1
        other_user.save()

        post_thread(self.category, poster=other_user)

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [other_user])
        self.assertEqual(ranking['users_count'], 1)

        # two users in ranking
        post_thread(self.category, poster=self.user)
        post_thread(self.category, poster=self.user)

        self.user.posts = 2
        self.user.save()

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [self.user, other_user])
        self.assertEqual(ranking['users_count'], 2)

        self.assertEqual(ranking['users'][0].score, 2)
        self.assertEqual(ranking['users'][1].score, 1)
    def test_active_posters_list(self):
        """active posters page has no showstoppers"""
        category = Category.objects.get(slug='first-category')
        view_link = reverse('misago:users-active-posters')

        response = self.client.get(view_link)
        self.assertEqual(response.status_code, 200)

        # Create 50 test users and see if errors appeared
        for i in range(50):
            user = UserModel.objects.create_user(
                'Bob%s' % i,
                '*****@*****.**' % i,
                'Pass.123',
                posts=12345,
            )
            post_thread(category, poster=user)

        build_active_posters_ranking()

        response = self.client.get(view_link)
        self.assertEqual(response.status_code, 200)
Exemple #9
0
    def test_get_active_posters_ranking(self):
        """get_active_posters_ranking returns list of active posters"""
        # no posts, empty tanking
        empty_ranking = get_active_posters_ranking()

        self.assertEqual(empty_ranking['users'], [])
        self.assertEqual(empty_ranking['users_count'], 0)

        # other user
        other_user = UserModel.objects.create_user("OtherUser",
                                                   "*****@*****.**", "pass123")

        post_thread(self.category, poster=other_user)

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [other_user])
        self.assertEqual(ranking['users_count'], 1)

        # two users in ranking
        post_thread(self.category, poster=self.user)
        post_thread(self.category, poster=self.user)

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [self.user, other_user])
        self.assertEqual(ranking['users_count'], 2)

        self.assertEqual(ranking['users'][0].score, 2)
        self.assertEqual(ranking['users'][1].score, 1)

        # disabled users are not ranked
        disabled = UserModel.objects.create_user("DisabledUser",
                                                 "*****@*****.**",
                                                 "pass123")

        disabled.is_active = False
        disabled.save()

        post_thread(self.category, poster=disabled)
        post_thread(self.category, poster=disabled)
        post_thread(self.category, poster=disabled)

        disabled.posts = 3
        disabled.save()

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [self.user, other_user])
        self.assertEqual(ranking['users_count'], 2)

        self.assertEqual(ranking['users'][0].score, 2)
        self.assertEqual(ranking['users'][1].score, 1)
 def handle(self, *args, **options):
     self.stdout.write('\n\nBuilding active posters ranking...')
     build_active_posters_ranking()
     self.stdout.write('Done!')
Exemple #11
0
    def test_get_active_posters_ranking(self):
        """get_active_posters_ranking returns list of active posters"""
        # no posts, empty tanking
        empty_ranking = get_active_posters_ranking()

        self.assertEqual(empty_ranking['users'], [])
        self.assertEqual(empty_ranking['users_count'], 0)

        # other user that will be posting
        other_user = UserModel.objects.create_user("OtherUser", "*****@*****.**", "pass123")

        # lurker user that won't post anything
        UserModel.objects.create_user("Lurker", "*****@*****.**", "pass123")

        # unranked user that posted something 400 days ago
        unranked_user = UserModel.objects.create_user(
            "UnrankedUser", "*****@*****.**", "pass123"
        )

        started_on = timezone.now() - timedelta(days=400)
        post_thread(self.category, poster=unranked_user, started_on=started_on)

        # Start testing scenarios
        post_thread(self.category, poster=other_user)

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [other_user])
        self.assertEqual(ranking['users_count'], 1)

        # two users in ranking
        post_thread(self.category, poster=self.user)
        post_thread(self.category, poster=self.user)

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [self.user, other_user])
        self.assertEqual(ranking['users_count'], 2)

        self.assertEqual(ranking['users'][0].score, 2)
        self.assertEqual(ranking['users'][1].score, 1)

        # disabled users are not ranked
        disabled = UserModel.objects.create_user("DisabledUser", "*****@*****.**", "pass123")

        disabled.is_active = False
        disabled.save()

        post_thread(self.category, poster=disabled)
        post_thread(self.category, poster=disabled)
        post_thread(self.category, poster=disabled)

        disabled.posts = 3
        disabled.save()

        build_active_posters_ranking()
        ranking = get_active_posters_ranking()

        self.assertEqual(ranking['users'], [self.user, other_user])
        self.assertEqual(ranking['users_count'], 2)

        self.assertEqual(ranking['users'][0].score, 2)
        self.assertEqual(ranking['users'][1].score, 1)