def test_comparing_entered_left(self):

        migration1 = GroupMigrationFactory(time=datetime.now() - timedelta(2), members_ids=range(0, 100000))
        migration1.update()
        migration1.save()

        migration2 = GroupMigrationFactory(group=migration1.group, time=datetime.now() - timedelta(1), members_ids=range(99990, 100010))
        migration2.update()
        migration2.save()

        self.assertEqual(migration2.hidden, False)
        migration2.compare_entered_left()
        self.assertEqual(migration2.hidden, True)
    def test_comparing_with_statistic(self):

        if 'vkontakte_groups_statistic' not in settings.INSTALLED_APPS:
            return False

        from vkontakte_groups_statistic.factories import GroupStatFactory

        migration = GroupMigrationFactory(members_ids=range(0, 10000))
        migration.update()
        migration.save()

        stat = GroupStatFactory(group=migration.group, members=9000, date=migration.time.date())

        self.assertEqual(migration.hidden, False)
        migration.compare_with_statistic()
        self.assertEqual(migration.hidden, True)

        stat.members = 9001
        stat.save()
        migration.hidden = False

        self.assertEqual(migration.hidden, False)
        migration.compare_with_statistic()
        self.assertEqual(migration.hidden, False)
    def test_comparing_with_siblings(self):

        migration1 = GroupMigrationFactory(time=datetime.now() - timedelta(2), members_ids=range(0, 100000))
        migration1.update()
        migration1.save()

        migration2 = GroupMigrationFactory(group=migration1.group, time=datetime.now() - timedelta(1), members_ids=range(0, 90000))
        migration2.update()
        migration2.save()

        self.assertEqual(migration2.hidden, False)
        migration2.compare_with_siblings()
        self.assertEqual(migration2.hidden, True)

        migration3 = GroupMigrationFactory(group=migration1.group, members_ids=range(0, 90010))
        migration3.update()
        migration3.save()

        self.assertEqual(migration3.hidden, False)
        migration3.compare_with_siblings()
        self.assertEqual(migration3.hidden, False)

        # comparing with previous and next
        GroupMigration.objects.all().delete()
        migration1 = GroupMigrationFactory(time=datetime.now() - timedelta(2), members_ids=range(0, 90000))
        migration1.update()
        migration1.save()

        migration2 = GroupMigrationFactory(group=migration1.group, time=datetime.now() - timedelta(1), members_ids=range(0, 100000))
        migration2.update()
        migration2.save()

        migration3 = GroupMigrationFactory(group=migration1.group, members_ids=range(0, 100010))
        migration3.update()
        migration3.save()

        self.assertEqual(migration1.hidden, False)
        self.assertEqual(migration2.hidden, False)
        self.assertEqual(migration3.hidden, False)
        migration2.compare_with_siblings()
        self.assertEqual(GroupMigration.objects.get(id=migration1.id).hidden, True)
        self.assertEqual(GroupMigration.objects.get(id=migration2.id).hidden, False)
        self.assertEqual(GroupMigration.objects.get(id=migration3.id).hidden, False)