Ejemplo n.º 1
0
    def test_create(self):
        self.assertEqual(self.clan.name, 'clan-name')
        self.assertEqual(self.clan.abbr, 'abbr')
        self.assertEqual(self.clan.motto, 'clan-motto')
        self.assertEqual(self.clan.description, 'clan-description')
        self.assertEqual(self.clan.members_number, 1)

        membership = MembershipPrototype.get_by_account_id(self.account.id)

        self.assertEqual(membership.clan_id, self.clan.id)
        self.assertEqual(membership.account_id, self.account.id)
        self.assertTrue(membership.role.is_LEADER)

        self.account.reload()
        self.assertEqual(self.account.clan_id, self.clan.id)

        self.assertEqual(SubCategoryPrototype._db_count(), 1)
        self.assertTrue(
            SubCategoryPrototype.get_by_id(
                self.clan.forum_subcategory_id).restricted)
        self.assertEqual(ForumPermissionPrototype._db_count(), 1)
        self.assertNotEqual(
            ForumPermissionPrototype.get_for(self.account.id,
                                             self.clan.forum_subcategory_id),
            None)
Ejemplo n.º 2
0
    def __init__(self):
        register_user('forum_user', '*****@*****.**', '111111')
        register_user('forum_user_2', '*****@*****.**', '111111')

        self.account_1 = AccountPrototype.get_by_nick('forum_user')
        self.account_2 = AccountPrototype.get_by_nick('forum_user_2')

        # cat1
        # |-subcat1
        # | |-thread1
        # | | |-post1
        # | |-thread2
        # |-subcat2
        # cat2
        # | subcat3
        # | |- thread3
        # cat3

        self.cat_1 = CategoryPrototype.create(caption='cat1-caption', slug='cat1-slug', order=0)
        # to test, that subcat.id not correlate with order
        self.subcat_2 = SubCategoryPrototype.create(category=self.cat_1, caption='subcat2-caption', order=1, closed=True)
        self.subcat_1 = SubCategoryPrototype.create(category=self.cat_1, caption='subcat1-caption', order=0)
        self.cat_2 = CategoryPrototype.create(caption='cat2-caption', slug='cat2-slug', order=0)
        self.subcat_3 = SubCategoryPrototype.create(category=self.cat_2, caption='subcat3-caption', order=0)
        self.cat_3 = CategoryPrototype.create(caption='cat3-caption', slug='cat3-slug', order=0)

        self.thread_1 = ThreadPrototype.create(self.subcat_1, 'thread1-caption', self.account_1, 'thread1-text')
        self.thread_2 = ThreadPrototype.create(self.subcat_1, 'thread2-caption', self.account_1, 'thread2-text')
        self.thread_3 = ThreadPrototype.create(self.subcat_3, 'thread3-caption', self.account_1, 'thread3-text')

        self.post_1 = PostPrototype.create(self.thread_1, self.account_1, 'post1-text')

        # create test clan and clean it's forum artifacts
        self.clan_category = CategoryPrototype.create(caption='category-1', slug=clans_settings.FORUM_CATEGORY_SLUG, order=0)
        self.clan_1 = ClanPrototype.create(self.account_1, abbr=u'abbr1', name=u'name1', motto=u'motto', description=u'description')
Ejemplo n.º 3
0
    def setUp(self):
        super(SubscriptionPrototypeTests, self).setUp()
        create_test_map()

        self.account = self.accounts_factory.create_account()
        self.account_2 = self.accounts_factory.create_account()

        self.category = CategoryPrototype.create(caption='cat-caption',
                                                 slug='cat-slug',
                                                 order=0)
        self.subcategory_1 = SubCategoryPrototype.create(
            category=self.category, caption='subcat-1-caption', order=0)
        self.subcategory_2 = SubCategoryPrototype.create(
            category=self.category, caption='subcat-2-caption', order=1)

        self.thread_1_1 = ThreadPrototype.create(self.subcategory_1,
                                                 'thread-1-1-caption',
                                                 self.account,
                                                 'thread-1-1-text')
        self.thread_1_2 = ThreadPrototype.create(self.subcategory_1,
                                                 'thread-1-2-caption',
                                                 self.account,
                                                 'thread-1-2-text')
        self.thread_1_3 = ThreadPrototype.create(self.subcategory_1,
                                                 'thread-1-3-caption',
                                                 self.account_2,
                                                 'thread-1-3-text')
        self.thread_2_1 = ThreadPrototype.create(self.subcategory_2,
                                                 'thread-2-1-caption',
                                                 self.account,
                                                 'thread-2-1-text')
        self.thread_2_2 = ThreadPrototype.create(self.subcategory_2,
                                                 'thread-2-2-caption',
                                                 self.account,
                                                 'thread-2-2-text')
Ejemplo n.º 4
0
    def setUp(self):
        super(TestModeration, self).setUp()
        create_test_map()
        register_user('main_user', '*****@*****.**', '111111')
        register_user('moderator', '*****@*****.**', '111111')
        register_user('second_user', '*****@*****.**', '111111')

        self.main_account = AccountPrototype.get_by_nick('main_user')
        self.moderator = AccountPrototype.get_by_nick('moderator')
        self.second_account = AccountPrototype.get_by_nick('second_user')

        group = sync_group(forum_settings.MODERATOR_GROUP_NAME, ['forum.moderate_post', 'forum.moderate_thread'])

        group.user_set.add(self.moderator._model)

        self.client = client.Client()

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory = SubCategoryPrototype.create(category=self.category, caption='subcat-caption', order=0)
        self.subcategory2 = SubCategoryPrototype.create(category=self.category, caption='subcat2-caption', order=1, closed=True)
        self.thread = ThreadPrototype.create(self.subcategory, 'thread-caption', self.main_account, 'thread-text')
        self.post = PostPrototype.create(self.thread, self.main_account, 'post-text')
        self.post2 = PostPrototype.create(self.thread, self.main_account, 'post2-text')
        self.post5 = PostPrototype.create(self.thread, self.main_account, 'post5-text', technical=True)

        self.thread2 = ThreadPrototype.create(self.subcategory, 'thread2-caption', self.main_account, 'thread2-text')
        self.post3 = PostPrototype.create(self.thread2, self.main_account, 'post3-text')
        self.post4 = PostPrototype.create(self.thread2, self.second_account, 'post4-text')

        self.thread3 = ThreadPrototype.create(self.subcategory, 'thread3-caption', self.second_account, 'thread3-text')
Ejemplo n.º 5
0
    def __init__(self, accounts_factory):
        self.account_1 = accounts_factory.create_account()
        self.account_2 = accounts_factory.create_account()

        # cat1
        # |-subcat1
        # | |-thread1
        # | | |-post1
        # | |-thread2
        # |-subcat2
        # cat2
        # | subcat3
        # | |- thread3
        # cat3

        self.cat_1 = CategoryPrototype.create(caption='cat1-caption', slug='cat1-slug', order=0)
        # to test, that subcat.id not correlate with order
        self.subcat_2 = SubCategoryPrototype.create(category=self.cat_1, caption='subcat2-caption', order=1, closed=True)
        self.subcat_1 = SubCategoryPrototype.create(category=self.cat_1, caption='subcat1-caption', order=0)
        self.cat_2 = CategoryPrototype.create(caption='cat2-caption', slug='cat2-slug', order=0)
        self.subcat_3 = SubCategoryPrototype.create(category=self.cat_2, caption='subcat3-caption', order=0)
        self.cat_3 = CategoryPrototype.create(caption='cat3-caption', slug='cat3-slug', order=0)

        self.thread_1 = ThreadPrototype.create(self.subcat_1, 'thread1-caption', self.account_1, 'thread1-text')
        self.thread_2 = ThreadPrototype.create(self.subcat_1, 'thread2-caption', self.account_1, 'thread2-text')
        self.thread_3 = ThreadPrototype.create(self.subcat_3, 'thread3-caption', self.account_1, 'thread3-text')

        self.post_1 = PostPrototype.create(self.thread_1, self.account_1, 'post1-text')

        # create test clan and clean it's forum artifacts
        self.clan_category = CategoryPrototype.create(caption='category-1', slug=clans_settings.FORUM_CATEGORY_SLUG, order=0)
        self.clan_1 = ClanPrototype.create(self.account_1, abbr='abbr1', name='name1', motto='motto', description='description')
Ejemplo n.º 6
0
    def setUp(self):
        super(ReadStateTests, self).setUp()

        create_test_map()

        self.account = self.accounts_factory.create_account()
        self.account_2 = self.accounts_factory.create_account()

        category = CategoryPrototype.create(caption='cat-caption',
                                            slug='cat-slug',
                                            order=0)
        self.subcategory = SubCategoryPrototype.create(
            category=category, caption='subcat-caption', order=0)
        self.subcategory_2 = SubCategoryPrototype.create(
            category=category, caption='subcat-2-caption', order=0)

        self.thread = ThreadPrototype.create(self.subcategory,
                                             'thread1-caption', self.account_2,
                                             'thread-text')
        self.thread_2 = ThreadPrototype.create(self.subcategory,
                                               'thread2-caption',
                                               self.account_2, 'thread-2-text')
        self.thread_3 = ThreadPrototype.create(self.subcategory_2,
                                               'thread2-caption', self.account,
                                               'thread-2-text')
Ejemplo n.º 7
0
    def create(cls, owner, abbr, name, motto, description):

        forum_category = CategoryPrototype.get_by_slug(clans_settings.FORUM_CATEGORY_SLUG)

        subcategory_order = SubCategoryPrototype._db_filter(category=forum_category.id).aggregate(models.Max('order'))['order__max']
        if subcategory_order is None:
            subcategory_order = 0
        else:
            subcategory_order += 1

        forum_subcategory = SubCategoryPrototype.create(category=forum_category,
                                                        caption=cls.get_forum_subcategory_caption(name),
                                                        order=subcategory_order,
                                                        restricted=True)


        clan_model = cls._model_class.objects.create(name=name,
                                                     abbr=abbr,
                                                     motto=motto,
                                                     description=description,
                                                     members_number=1,
                                                     forum_subcategory=forum_subcategory._model)

        clan = cls(clan_model)

        MembershipPrototype.create(owner, clan, role=MEMBER_ROLE.LEADER)

        owner.set_clan_id(clan.id)

        return clan
Ejemplo n.º 8
0
    def create(cls, owner, abbr, name, motto, description):

        forum_category = CategoryPrototype.get_by_slug(clans_settings.FORUM_CATEGORY_SLUG)

        subcategory_order = SubCategoryPrototype._db_filter(category=forum_category.id).aggregate(models.Max('order'))['order__max']
        if subcategory_order is None:
            subcategory_order = 0
        else:
            subcategory_order += 1

        forum_subcategory = SubCategoryPrototype.create(category=forum_category,
                                                        caption=cls.get_forum_subcategory_caption(name),
                                                        order=subcategory_order,
                                                        restricted=True)


        clan_model = cls._model_class.objects.create(name=name,
                                                     abbr=abbr,
                                                     motto=motto,
                                                     description=description,
                                                     members_number=1,
                                                     forum_subcategory=forum_subcategory._model)

        clan = cls(clan_model)

        MembershipPrototype.create(owner, clan, role=MEMBER_ROLE.LEADER)

        owner.set_clan_id(clan.id)

        return clan
Ejemplo n.º 9
0
    def setUp(self):
        super(CalculateMightTests, self).setUp()
        self.place_1, self.place_2, self.place_3 = create_test_map()

        self.account = self.accounts_factory.create_account()
        self.account_2 = self.accounts_factory.create_account(
            referral_of_id=self.account.id)

        self.forum_category = CategoryPrototype.create('category',
                                                       'category-slug', 0)
        self.bills_subcategory = SubCategoryPrototype.create(
            self.forum_category,
            'subcategory',
            order=0,
            uid=bills_settings.FORUM_CATEGORY_UID)
        self.blogs_subcategory = SubCategoryPrototype.create(
            self.forum_category,
            blogs_conf.settings.FORUM_CATEGORY_UID + '-caption',
            order=1,
            uid=blogs_conf.settings.FORUM_CATEGORY_UID)

        self.restricted_subcategory = SubCategoryPrototype.create(
            self.forum_category,
            'restricted-caption',
            order=2,
            restricted=True,
            uid='restricted-sub')
Ejemplo n.º 10
0
    def test_create_remove_multiple_clans(self):
        account_2 = self.accounts_factory.create_account()
        clan_2 = ClanPrototype.create(account_2,
                                      abbr='abbr2',
                                      name='clan-name-2',
                                      motto='clan-2-motto',
                                      description='clan-2-description')

        self.assertEqual(SubCategoryPrototype._db_count(), 2)
        self.assertEqual(ForumPermissionPrototype._db_count(), 2)
        self.assertNotEqual(
            ForumPermissionPrototype.get_for(self.account.id,
                                             self.clan.forum_subcategory_id),
            None)
        self.assertNotEqual(
            ForumPermissionPrototype.get_for(account_2.id,
                                             clan_2.forum_subcategory_id),
            None)

        clan_2.remove()

        self.assertEqual(SubCategoryPrototype._db_count(), 2)
        self.assertEqual(ForumPermissionPrototype._db_count(), 1)

        self.assertNotEqual(
            ForumPermissionPrototype.get_for(self.account.id,
                                             self.clan.forum_subcategory_id),
            None)
        self.assertEqual(
            ForumPermissionPrototype.get_for(account_2.id,
                                             clan_2.forum_subcategory_id),
            None)
Ejemplo n.º 11
0
    def __init__(self, accounts_factory):
        self.account_1 = accounts_factory.create_account()
        self.account_2 = accounts_factory.create_account()

        # cat1
        # |-subcat1
        # | |-thread1
        # | | |-post1
        # | |-thread2
        # |-subcat2
        # cat2
        # | subcat3
        # | |- thread3
        # cat3

        self.cat_1 = CategoryPrototype.create(caption='cat1-caption',
                                              slug='cat1-slug',
                                              order=0)
        # to test, that subcat.id not correlate with order
        self.subcat_2 = SubCategoryPrototype.create(category=self.cat_1,
                                                    caption='subcat2-caption',
                                                    order=1,
                                                    closed=True)
        self.subcat_1 = SubCategoryPrototype.create(category=self.cat_1,
                                                    caption='subcat1-caption',
                                                    order=0)
        self.cat_2 = CategoryPrototype.create(caption='cat2-caption',
                                              slug='cat2-slug',
                                              order=0)
        self.subcat_3 = SubCategoryPrototype.create(category=self.cat_2,
                                                    caption='subcat3-caption',
                                                    order=0)
        self.cat_3 = CategoryPrototype.create(caption='cat3-caption',
                                              slug='cat3-slug',
                                              order=0)

        self.thread_1 = ThreadPrototype.create(self.subcat_1,
                                               'thread1-caption',
                                               self.account_1, 'thread1-text')
        self.thread_2 = ThreadPrototype.create(self.subcat_1,
                                               'thread2-caption',
                                               self.account_1, 'thread2-text')
        self.thread_3 = ThreadPrototype.create(self.subcat_3,
                                               'thread3-caption',
                                               self.account_1, 'thread3-text')

        self.post_1 = PostPrototype.create(self.thread_1, self.account_1,
                                           'post1-text')

        # create test clan and clean it's forum artifacts
        self.clan_category = CategoryPrototype.create(
            caption='category-1',
            slug=clans_settings.FORUM_CATEGORY_SLUG,
            order=0)
        self.clan_1 = ClanPrototype.create(self.account_1,
                                           abbr='abbr1',
                                           name='name1',
                                           motto='motto',
                                           description='description')
Ejemplo n.º 12
0
    def remove(self):
        for membership_model in MembershipPrototype._db_filter(clan_id=self.id):
            membership = MembershipPrototype(model=membership_model)
            membership.remove()

        SubCategoryPrototype.get_by_id(self.forum_subcategory_id).delete()

        self._model.delete()
Ejemplo n.º 13
0
    def test_success(self):
        self.assertTrue(SubCategoryPrototype._db_count() > 0)

        self.check_ajax_ok(self.client.post(url('forum:read-all')))
        self.assertEqual(SubCategoryReadInfoPrototype._db_count(), SubCategoryPrototype._db_count())

        for read_info in SubCategoryReadInfoPrototype.from_query(SubCategoryReadInfoPrototype._db_all()):
            read_info = SubCategoryReadInfoPrototype._db_get_object(0)
            self.assertEqual(read_info.account_id, self.account.id)
            self.assertEqual(read_info.subcategory_id, self.subcat1.id)
            self.assertTrue(read_info.all_read_at > datetime.datetime.now() - datetime.timedelta(seconds=1))
Ejemplo n.º 14
0
    def test_success(self):
        self.assertTrue(SubCategoryPrototype._db_count() > 0)

        self.check_ajax_ok(self.client.post(url('forum:read-all')))
        self.assertEqual(SubCategoryReadInfoPrototype._db_count(), SubCategoryPrototype._db_count())

        for read_info in SubCategoryReadInfoPrototype.from_query(SubCategoryReadInfoPrototype._db_all()):
            read_info = SubCategoryReadInfoPrototype._db_get_object(0)
            self.assertEqual(read_info.account_id, self.account.id)
            self.assertEqual(read_info.subcategory_id, self.subcat1.id)
            self.assertTrue(read_info.all_read_at > datetime.datetime.now() - datetime.timedelta(seconds=1))
Ejemplo n.º 15
0
    def setUp(self):
        super(TestModeration, self).setUp()
        create_test_map()
        register_user('main_user', '*****@*****.**', '111111')
        register_user('moderator', '*****@*****.**', '111111')
        register_user('second_user', '*****@*****.**', '111111')

        self.main_account = AccountPrototype.get_by_nick('main_user')
        self.moderator = AccountPrototype.get_by_nick('moderator')
        self.second_account = AccountPrototype.get_by_nick('second_user')

        group = sync_group(forum_settings.MODERATOR_GROUP_NAME,
                           ['forum.moderate_post', 'forum.moderate_thread'])

        group.user_set.add(self.moderator._model)

        self.client = client.Client()

        self.category = CategoryPrototype.create(caption='cat-caption',
                                                 slug='cat-slug',
                                                 order=0)
        self.subcategory = SubCategoryPrototype.create(
            category=self.category, caption='subcat-caption', order=0)
        self.subcategory2 = SubCategoryPrototype.create(
            category=self.category,
            caption='subcat2-caption',
            order=1,
            closed=True)
        self.thread = ThreadPrototype.create(self.subcategory,
                                             'thread-caption',
                                             self.main_account, 'thread-text')
        self.post = PostPrototype.create(self.thread, self.main_account,
                                         'post-text')
        self.post2 = PostPrototype.create(self.thread, self.main_account,
                                          'post2-text')
        self.post5 = PostPrototype.create(self.thread,
                                          self.main_account,
                                          'post5-text',
                                          technical=True)

        self.thread2 = ThreadPrototype.create(self.subcategory,
                                              'thread2-caption',
                                              self.main_account,
                                              'thread2-text')
        self.post3 = PostPrototype.create(self.thread2, self.main_account,
                                          'post3-text')
        self.post4 = PostPrototype.create(self.thread2, self.second_account,
                                          'post4-text')

        self.thread3 = ThreadPrototype.create(self.subcategory,
                                              'thread3-caption',
                                              self.second_account,
                                              'thread3-text')
Ejemplo n.º 16
0
    def setUp(self):
        super(CalculateMightTests, self).setUp()
        self.place_1, self.place_2, self.place_3 = create_test_map()

        self.account = self.accounts_factory.create_account()
        self.account_2 = self.accounts_factory.create_account(referral_of_id=self.account.id)

        self.forum_category = CategoryPrototype.create('category', 'category-slug', 0)
        self.bills_subcategory = SubCategoryPrototype.create(self.forum_category, 'subcategory', order=0, uid=bills_settings.FORUM_CATEGORY_UID)
        self.blogs_subcategory = SubCategoryPrototype.create(self.forum_category, blogs_conf.settings.FORUM_CATEGORY_UID + '-caption', order=1, uid=blogs_conf.settings.FORUM_CATEGORY_UID)

        self.restricted_subcategory = SubCategoryPrototype.create(self.forum_category, 'restricted-caption', order=2, restricted=True, uid='restricted-sub')
Ejemplo n.º 17
0
    def setUp(self):
        super(CalculateMightTests, self).setUp()
        self.place_1, self.place_2, self.place_3 = create_test_map()

        result, account_id, bundle_id = register_user('test_user', '*****@*****.**', '111111')
        self.account = AccountPrototype.get_by_id(account_id)

        result, account_id, bundle_id = register_user('test_user_2', '*****@*****.**', '111111', referral_of_id=self.account.id)
        self.account_2 = AccountPrototype.get_by_id(account_id)

        self.forum_category = CategoryPrototype.create('category', 'category-slug', 0)
        self.bills_subcategory = SubCategoryPrototype.create(self.forum_category, 'subcategory', order=0, uid=bills_settings.FORUM_CATEGORY_UID)
        self.blogs_subcategory = SubCategoryPrototype.create(self.forum_category, blogs_conf.settings.FORUM_CATEGORY_UID + '-caption', order=1, uid=blogs_conf.settings.FORUM_CATEGORY_UID)
Ejemplo n.º 18
0
    def edit_thread(self):

        if not can_change_thread(self.account, self.thread):
            return self.template(
                'error.html', {
                    'error_message': u'Вы не можете редактировать эту тему',
                    'error_code': 'forum.edit_thread.no_permissions'
                })

        account_is_moderator = is_moderator(self.account)

        if account_is_moderator:
            form = forms.EditThreadModeratorForm(subcategories=[
                SubCategoryPrototype(subcategory_model)
                for subcategory_model in SubCategory.objects.all()
            ],
                                                 initial={
                                                     'subcategory':
                                                     self.subcategory.id,
                                                     'caption':
                                                     self.thread.caption,
                                                     'important':
                                                     self.thread.important
                                                 })
        else:
            form = forms.EditThreadForm(subcategories=[
                SubCategoryPrototype(subcategory_model)
                for subcategory_model in SubCategory.objects.all()
            ],
                                        initial={
                                            'subcategory': self.subcategory.id,
                                            'caption': self.thread.caption
                                        })

        return self.template(
            'forum/edit_thread.html', {
                'category':
                self.category,
                'subcategory':
                self.subcategory,
                'thread':
                self.thread,
                'edit_thread_form':
                form,
                'is_moderator':
                account_is_moderator,
                'can_change_thread_category':
                can_change_thread_category(self.account)
            })
Ejemplo n.º 19
0
    def setUp(self):
        super(ReadStateTests, self).setUp()

        create_test_map()

        self.account = self.accounts_factory.create_account()
        self.account_2 = self.accounts_factory.create_account()

        category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory = SubCategoryPrototype.create(category=category, caption='subcat-caption', order=0)
        self.subcategory_2 = SubCategoryPrototype.create(category=category, caption='subcat-2-caption', order=0)

        self.thread = ThreadPrototype.create(self.subcategory, 'thread1-caption', self.account_2, 'thread-text')
        self.thread_2 = ThreadPrototype.create(self.subcategory, 'thread2-caption', self.account_2, 'thread-2-text')
        self.thread_3 = ThreadPrototype.create(self.subcategory_2, 'thread2-caption', self.account, 'thread-2-text')
Ejemplo n.º 20
0
    def test_last_forum_posts_with_permissions(self):

        register_user('granted_user', '*****@*****.**', '111111')
        register_user('wrong_user', '*****@*****.**', '111111')

        granted_account = AccountPrototype.get_by_nick('granted_user')
        wrong_account = AccountPrototype.get_by_nick('wrong_user')

        restricted_subcategory = SubCategoryPrototype.create(
            category=self.category,
            caption='subcat2-caption',
            order=1,
            restricted=True)

        PermissionPrototype.create(granted_account, restricted_subcategory)

        restricted_thread = ThreadPrototype.create(
            restricted_subcategory, 'thread-restricted-caption', self.account,
            'thread-text')

        self.assertEqual(
            set(t.id for t in ThreadPrototype.get_last_threads(account=None,
                                                               limit=3)),
            set([self.thread.id]))

        self.assertEqual(
            set(t.id for t in ThreadPrototype.get_last_threads(
                account=granted_account, limit=3)),
            set([self.thread.id, restricted_thread.id]))

        self.assertEqual(
            set(t.id for t in ThreadPrototype.get_last_threads(
                account=wrong_account, limit=3)), set([self.thread.id]))
Ejemplo n.º 21
0
 def test_remove(self):
     self.clan.remove()
     self.assertEqual(ClanPrototype._db_count(), 0)
     self.assertEqual(MembershipPrototype._db_count(), 0)
     self.assertEqual(SubCategoryPrototype._db_count(), 1)
     self.assertEqual(ForumPermissionPrototype._db_count(), 0)
     self.assertEqual(ForumPermissionPrototype.get_for(self.account.id, self.clan.forum_subcategory_id), None)
Ejemplo n.º 22
0
    def index(self):
        categories = list(
            CategoryPrototype(category_model)
            for category_model in Category.objects.all().order_by(
                'order', 'id'))

        subcategories = SubCategoryPrototype.subcategories_visible_to_account(
            account=self.account if self.account.is_authenticated() else None)

        forum_structure = []

        read_states = {
            subcategory.id: ReadState(account=self.account)
            for subcategory in subcategories
        }

        for category in categories:
            children = []
            for subcategory in subcategories:
                if subcategory.category_id == category.id:
                    children.append(subcategory)

            forum_structure.append({
                'category': category,
                'subcategories': children
            })

        return self.template('forum/index.html', {
            'forum_structure': forum_structure,
            'read_states': read_states
        })
Ejemplo n.º 23
0
    def test_2_subcategories_updated(self):
        subcategory_2 = SubCategoryPrototype.create(category=self.category, caption='subcat-2-caption', order=3)

        with mock.patch('the_tale.forum.prototypes.SubCategoryPrototype.update') as subcategory_update:
            self.thread.update(new_subcategory_id=subcategory_2.id)

        self.assertEqual(subcategory_update.call_count, 2)
Ejemplo n.º 24
0
    def create(cls, author, caption, text):

        model = models.Post.objects.create(author=author._model,
                                           caption=caption,
                                           text=text,
                                           state=relations.POST_STATE.ACCEPTED,
                                           created_at_turn=turn.number(),
                                           votes=1)

        thread = ForumThreadPrototype.create(
            ForumSubCategoryPrototype.get_by_uid(
                conf.settings.FORUM_CATEGORY_UID),
            caption=caption,
            author=get_system_user(),
            text='обсуждение [url="%s%s"]произведения[/url]' %
            (project_settings.SITE_URL,
             reverse('blogs:posts:show', args=[model.id])),
            markup_method=MARKUP_METHOD.POSTMARKUP)

        model.forum_thread = thread._model
        model.save()

        post = cls(model)

        VotePrototype.create(post, author)

        for tag_id in conf.settings.DEFAULT_TAGS:
            models.Tagged.objects.create(post_id=post.id, tag_id=tag_id)

        return post
Ejemplo n.º 25
0
 def create(cls, account, clan, role):
     model = cls._model_class.objects.create(clan=clan._model,
                                             account=account._model,
                                             role=role)
     ForumPermissionPrototype.create(
         account, SubCategoryPrototype.get_by_id(clan.forum_subcategory_id))
     return cls(model)
Ejemplo n.º 26
0
    def create(cls, owner, caption, rationale, bill, chronicle_on_accepted):

        model = Bill.objects.create(owner=owner._model,
                                    type=bill.type,
                                    caption=caption,
                                    rationale=rationale,
                                    created_at_turn=TimePrototype.get_current_turn_number(),
                                    technical_data=s11n.to_json(bill.serialize()),
                                    state=BILL_STATE.VOTING,
                                    chronicle_on_accepted=chronicle_on_accepted,
                                    votes_for=1) # author always wote for bill

        bill_prototype = cls(model)

        text = u'Обсуждение [url="%s%s"]закона[/url]' % (project_settings.SITE_URL,
                                                         reverse('game:bills:show', args=[model.id]) )

        thread = ThreadPrototype.create(SubCategoryPrototype.get_by_uid(bills_settings.FORUM_CATEGORY_UID),
                                        caption=caption,
                                        author=get_system_user(),
                                        text=bill_prototype.bill_info_text(text),
                                        technical=True,
                                        markup_method=MARKUP_METHOD.POSTMARKUP)

        model.forum_thread = thread._model
        model.save()

        ActorPrototype.update_actors(bill_prototype, bill_prototype.data.actors)

        VotePrototype.create(owner, bill_prototype, VOTE_TYPE.FOR)

        signals.bill_created.send(sender=cls, bill=bill_prototype)

        return bill_prototype
Ejemplo n.º 27
0
    def test_last_forum_posts_with_permissions(self):
        granted_account = self.accounts_factory.create_account()
        wrong_account = self.accounts_factory.create_account()

        restricted_subcategory = SubCategoryPrototype.create(
            category=self.category,
            caption='subcat2-caption',
            order=1,
            restricted=True)

        PermissionPrototype.create(granted_account, restricted_subcategory)

        restricted_thread = ThreadPrototype.create(
            restricted_subcategory, 'thread-restricted-caption', self.account,
            'thread-text')

        self.assertEqual(
            set(t.id for t in ThreadPrototype.get_last_threads(account=None,
                                                               limit=3)),
            set([self.thread.id]))

        self.assertEqual(
            set(t.id for t in ThreadPrototype.get_last_threads(
                account=granted_account, limit=3)),
            set([self.thread.id, restricted_thread.id]))

        self.assertEqual(
            set(t.id for t in ThreadPrototype.get_last_threads(
                account=wrong_account, limit=3)), set([self.thread.id]))
Ejemplo n.º 28
0
    def create(cls, owner, caption, rationale, bill, chronicle_on_accepted):

        model = Bill.objects.create(owner=owner._model,
                                    type=bill.type,
                                    caption=caption,
                                    rationale=rationale,
                                    created_at_turn=TimePrototype.get_current_turn_number(),
                                    technical_data=s11n.to_json(bill.serialize()),
                                    state=BILL_STATE.VOTING,
                                    chronicle_on_accepted=chronicle_on_accepted,
                                    votes_for=1) # author always wote for bill

        bill_prototype = cls(model)

        text = u'Обсуждение [url="%s%s"]закона[/url]' % (project_settings.SITE_URL,
                                                         reverse('game:bills:show', args=[model.id]) )

        thread = ThreadPrototype.create(SubCategoryPrototype.get_by_uid(bills_settings.FORUM_CATEGORY_UID),
                                        caption=caption,
                                        author=get_system_user(),
                                        text=bill_prototype.bill_info_text(text),
                                        technical=True,
                                        markup_method=MARKUP_METHOD.POSTMARKUP)

        model.forum_thread = thread._model
        model.save()

        ActorPrototype.update_actors(bill_prototype, bill_prototype.data.actors)

        VotePrototype.create(owner, bill_prototype, VOTE_TYPE.FOR)

        signals.bill_created.send(sender=cls, bill=bill_prototype)

        return bill_prototype
Ejemplo n.º 29
0
    def setUp(self):
        super(SubscriptionPrototypeTests, self).setUp()
        create_test_map()

        self.account = self.accounts_factory.create_account()
        self.account_2 = self.accounts_factory.create_account()

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory_1 = SubCategoryPrototype.create(category=self.category, caption='subcat-1-caption', order=0)
        self.subcategory_2 = SubCategoryPrototype.create(category=self.category, caption='subcat-2-caption', order=1)

        self.thread_1_1 = ThreadPrototype.create(self.subcategory_1, 'thread-1-1-caption', self.account, 'thread-1-1-text')
        self.thread_1_2 = ThreadPrototype.create(self.subcategory_1, 'thread-1-2-caption', self.account, 'thread-1-2-text')
        self.thread_1_3 = ThreadPrototype.create(self.subcategory_1, 'thread-1-3-caption', self.account_2, 'thread-1-3-text')
        self.thread_2_1 = ThreadPrototype.create(self.subcategory_2, 'thread-2-1-caption', self.account, 'thread-2-1-text')
        self.thread_2_2 = ThreadPrototype.create(self.subcategory_2, 'thread-2-2-caption', self.account, 'thread-2-2-text')
Ejemplo n.º 30
0
 def test_remove(self):
     self.clan.remove()
     self.assertEqual(ClanPrototype._db_count(), 0)
     self.assertEqual(MembershipPrototype._db_count(), 0)
     self.assertEqual(SubCategoryPrototype._db_count(), 1)
     self.assertEqual(ForumPermissionPrototype._db_count(), 0)
     self.assertEqual(ForumPermissionPrototype.get_for(self.account.id, self.clan.forum_subcategory_id), None)
Ejemplo n.º 31
0
    def create(cls, author, caption, text):

        model = models.Post.objects.create(author=author._model,
                                    caption=caption,
                                    text=text,
                                    state=relations.POST_STATE.ACCEPTED,
                                    created_at_turn=game_prototypes.TimePrototype.get_current_turn_number(),
                                    votes=1)

        thread = ForumThreadPrototype.create(ForumSubCategoryPrototype.get_by_uid(conf.settings.FORUM_CATEGORY_UID),
                                             caption=caption,
                                             author=get_system_user(),
                                             text=u'обсуждение [url="%s%s"]произведения[/url]' % (project_settings.SITE_URL,
                                                                                                  reverse('blogs:posts:show', args=[model.id])),
                                             markup_method=MARKUP_METHOD.POSTMARKUP)

        model.forum_thread = thread._model
        model.save()

        post = cls(model)

        VotePrototype.create(post, author)

        for tag_id in conf.settings.DEFAULT_TAGS:
            models.Tagged.objects.create(post_id=post.id, tag_id=tag_id)

        return post
Ejemplo n.º 32
0
    def test_2_subcategories_updated(self):
        subcategory_2 = SubCategoryPrototype.create(category=self.category, caption='subcat-2-caption', order=3)

        with mock.patch('the_tale.forum.prototypes.SubCategoryPrototype.update') as subcategory_update:
            self.thread.update(new_subcategory_id=subcategory_2.id)

        self.assertEqual(subcategory_update.call_count, 2)
Ejemplo n.º 33
0
    def test_create_remove_multiple_clans(self):
        account_2 = self.accounts_factory.create_account()
        clan_2 = ClanPrototype.create(account_2, abbr='abbr2', name='clan-name-2', motto='clan-2-motto', description='clan-2-description')

        self.assertEqual(SubCategoryPrototype._db_count(), 2)
        self.assertEqual(ForumPermissionPrototype._db_count(), 2)
        self.assertNotEqual(ForumPermissionPrototype.get_for(self.account.id, self.clan.forum_subcategory_id), None)
        self.assertNotEqual(ForumPermissionPrototype.get_for(account_2.id, clan_2.forum_subcategory_id), None)

        clan_2.remove()

        self.assertEqual(SubCategoryPrototype._db_count(), 2)
        self.assertEqual(ForumPermissionPrototype._db_count(), 1)

        self.assertNotEqual(ForumPermissionPrototype.get_for(self.account.id, self.clan.forum_subcategory_id), None)
        self.assertEqual(ForumPermissionPrototype.get_for(account_2.id, clan_2.forum_subcategory_id), None)
Ejemplo n.º 34
0
    def setUp(self):
        super(ReadStateTests, self).setUp()
        create_test_map()

        register_user("user_1", "*****@*****.**", "111111")
        register_user("user_2", "*****@*****.**", "111111")

        self.account = AccountPrototype.get_by_nick("user_1")
        self.account_2 = AccountPrototype.get_by_nick("user_2")

        category = CategoryPrototype.create(caption="cat-caption", slug="cat-slug", order=0)
        self.subcategory = SubCategoryPrototype.create(category=category, caption="subcat-caption", order=0)
        self.subcategory_2 = SubCategoryPrototype.create(category=category, caption="subcat-2-caption", order=0)

        self.thread = ThreadPrototype.create(self.subcategory, "thread1-caption", self.account_2, "thread-text")
        self.thread_2 = ThreadPrototype.create(self.subcategory, "thread2-caption", self.account_2, "thread-2-text")
        self.thread_3 = ThreadPrototype.create(self.subcategory_2, "thread2-caption", self.account, "thread-2-text")
Ejemplo n.º 35
0
    def test_delete(self):
        category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)

        subcategory_1 = SubCategoryPrototype.create(category=category, caption='subcat-1-caption', order=2)
        subcategory_2 = SubCategoryPrototype.create(category=category, caption='subcat-2-caption', order=1)

        thread_1_1 = ThreadPrototype.create(subcategory_1, 'thread-1_1-caption', self.account, 'thread-1_1-text')
        thread_1_2 = ThreadPrototype.create(subcategory_1, 'thread-1_2-caption', self.account, 'thread-1_2-text')
        thread_2_1 = ThreadPrototype.create(subcategory_2, 'thread-2_1-caption', self.account, 'thread-2_1-text')

        subcategory_1.delete()

        self.assertFalse(ThreadPrototype._db_filter(id__in=(thread_1_1.id, thread_1_2.id)).exists())
        self.assertTrue(ThreadPrototype._db_filter(id=thread_2_1.id).exists())

        self.assertFalse(SubCategoryPrototype._db_filter(id=subcategory_1.id).exists())
        self.assertTrue(SubCategoryPrototype._db_filter(id=subcategory_2.id).exists())
Ejemplo n.º 36
0
    def test_subcategories_visible_to_account_with_permissions(self):
        register_user('test_user', '*****@*****.**', '111111')
        register_user('granted_user', '*****@*****.**', '111111')
        register_user('wrong_user', '*****@*****.**', '111111')

        granted_account = AccountPrototype.get_by_nick('granted_user')
        wrong_account = AccountPrototype.get_by_nick('wrong_user')

        category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        subcategory_1 = SubCategoryPrototype.create(category=category, caption='subcat-1-caption', order=2)

        SubCategoryPrototype.create(category=category, caption='subcat-2-caption', order=1, restricted=True)

        restricted_subcategory = SubCategoryPrototype.create(category=category, caption='subcat-restricted-caption', order=0, restricted=True)

        PermissionPrototype.create(granted_account, restricted_subcategory)

        self.assertEqual([s.id for s in SubCategoryPrototype.subcategories_visible_to_account(account=None)],
                         [subcategory_1.id])

        self.assertEqual([s.id for s in SubCategoryPrototype.subcategories_visible_to_account(account=granted_account)],
                         [restricted_subcategory.id, subcategory_1.id])

        self.assertEqual([s.id for s in SubCategoryPrototype.subcategories_visible_to_account(account=wrong_account)],
                         [subcategory_1.id])
Ejemplo n.º 37
0
    def setUp(self):
        super(PermissionPrototypeTests, self).setUp()

        create_test_map()

        self.account = self.accounts_factory.create_account()

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory = SubCategoryPrototype.create(category=self.category, caption='subcat-caption', order=0)
Ejemplo n.º 38
0
    def setUp(self):
        super(PermissionPrototypeTests, self).setUp()

        create_test_map()

        self.account = self.accounts_factory.create_account()

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory = SubCategoryPrototype.create(category=self.category, caption='subcat-caption', order=0)
Ejemplo n.º 39
0
    def setUp(self):
        super(PermissionPrototypeTests, self).setUp()
        create_test_map()

        register_user('user_1', '*****@*****.**', '111111')

        self.account = AccountPrototype.get_by_nick('user_1')

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory = SubCategoryPrototype.create(category=self.category, caption='subcat-caption', order=0)
Ejemplo n.º 40
0
    def test_create_remove_multiple_clans(self):

        result, account_id, bundle_id = register_user('test_user_2', '*****@*****.**', '111111')

        account_2 = AccountPrototype.get_by_id(account_id)
        clan_2 = ClanPrototype.create(account_2, abbr=u'abbr2', name=u'clan-name-2', motto='clan-2-motto', description=u'clan-2-description')

        self.assertEqual(SubCategoryPrototype._db_count(), 2)
        self.assertEqual(ForumPermissionPrototype._db_count(), 2)
        self.assertNotEqual(ForumPermissionPrototype.get_for(self.account.id, self.clan.forum_subcategory_id), None)
        self.assertNotEqual(ForumPermissionPrototype.get_for(account_2.id, clan_2.forum_subcategory_id), None)

        clan_2.remove()

        self.assertEqual(SubCategoryPrototype._db_count(), 2)
        self.assertEqual(ForumPermissionPrototype._db_count(), 1)

        self.assertNotEqual(ForumPermissionPrototype.get_for(self.account.id, self.clan.forum_subcategory_id), None)
        self.assertEqual(ForumPermissionPrototype.get_for(account_2.id, clan_2.forum_subcategory_id), None)
Ejemplo n.º 41
0
    def setUp(self):
        super(SubscriptionPrototypeTests, self).setUp()
        create_test_map()

        register_user('user_1', '*****@*****.**', '111111')
        register_user('user_2', '*****@*****.**', '111111')

        self.account = AccountPrototype.get_by_nick('user_1')
        self.account_2 = AccountPrototype.get_by_nick('user_2')

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory_1 = SubCategoryPrototype.create(category=self.category, caption='subcat-1-caption', order=0)
        self.subcategory_2 = SubCategoryPrototype.create(category=self.category, caption='subcat-2-caption', order=1)

        self.thread_1_1 = ThreadPrototype.create(self.subcategory_1, 'thread-1-1-caption', self.account, 'thread-1-1-text')
        self.thread_1_2 = ThreadPrototype.create(self.subcategory_1, 'thread-1-2-caption', self.account, 'thread-1-2-text')
        self.thread_1_3 = ThreadPrototype.create(self.subcategory_1, 'thread-1-3-caption', self.account_2, 'thread-1-3-text')
        self.thread_2_1 = ThreadPrototype.create(self.subcategory_2, 'thread-2-1-caption', self.account, 'thread-2-1-text')
        self.thread_2_2 = ThreadPrototype.create(self.subcategory_2, 'thread-2-2-caption', self.account, 'thread-2-2-text')
Ejemplo n.º 42
0
    def update(self, abbr, name, motto, description):
        self.abbr = abbr
        self.name = name
        self.motto = motto
        self.description = description

        forum_subcateogry = SubCategoryPrototype.get_by_id(self.forum_subcategory_id)
        forum_subcateogry.caption = self.get_forum_subcategory_caption(name)
        forum_subcateogry.save()

        self.save()
Ejemplo n.º 43
0
    def setUp(self):
        super(ThreadPrototypeTests, self).setUp()

        create_test_map()

        self.account = self.accounts_factory.create_account()

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory = SubCategoryPrototype.create(category=self.category, caption='subcat-caption', order=0)

        self.thread = ThreadPrototype.create(self.subcategory, 'thread-caption', self.account, 'thread-text')
Ejemplo n.º 44
0
    def setUp(self):
        super(ThreadPrototypeTests, self).setUp()
        create_test_map()

        register_user('test_user', '*****@*****.**', '111111')
        self.account = AccountPrototype.get_by_nick('test_user')

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory = SubCategoryPrototype.create(category=self.category, caption='subcat-caption', order=0)

        self.thread = ThreadPrototype.create(self.subcategory, 'thread-caption', self.account, 'thread-text')
Ejemplo n.º 45
0
    def test_create(self):
        self.assertEqual(self.clan.name, 'clan-name')
        self.assertEqual(self.clan.abbr, 'abbr')
        self.assertEqual(self.clan.motto, 'clan-motto')
        self.assertEqual(self.clan.description, 'clan-description')
        self.assertEqual(self.clan.members_number, 1)

        membership = MembershipPrototype.get_by_account_id(self.account.id)

        self.assertEqual(membership.clan_id, self.clan.id)
        self.assertEqual(membership.account_id, self.account.id)
        self.assertTrue(membership.role.is_LEADER)

        self.account.reload()
        self.assertEqual(self.account.clan_id, self.clan.id)

        self.assertEqual(SubCategoryPrototype._db_count(), 1)
        self.assertTrue(SubCategoryPrototype.get_by_id(self.clan.forum_subcategory_id).restricted)
        self.assertEqual(ForumPermissionPrototype._db_count(), 1)
        self.assertNotEqual(ForumPermissionPrototype.get_for(self.account.id, self.clan.forum_subcategory_id), None)
Ejemplo n.º 46
0
    def update(self, abbr, name, motto, description):
        self.abbr = abbr
        self.name = name
        self.motto = motto
        self.description = description

        forum_subcateogry = SubCategoryPrototype.get_by_id(self.forum_subcategory_id)
        forum_subcateogry.caption = self.get_forum_subcategory_caption(name)
        forum_subcateogry.save()

        self.save()
Ejemplo n.º 47
0
    def setUp(self):
        super(ThreadPrototypeTests, self).setUp()

        create_test_map()

        self.account = self.accounts_factory.create_account()

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory = SubCategoryPrototype.create(category=self.category, caption='subcat-caption', order=0)

        self.thread = ThreadPrototype.create(self.subcategory, 'thread-caption', self.account, 'thread-text')
Ejemplo n.º 48
0
    def setUp(self):
        super(NewForumThreadTests, self).setUp()

        create_test_map()

        self.account_1 = self.accounts_factory.create_account()

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory = SubCategoryPrototype.create(category=self.category, caption='subcat-caption', order=0)
        self.thread = ThreadPrototype.create(self.subcategory, 'thread_1-caption', self.account_1, 'thread-text')

        self.message = MessagePrototype.get_priority_message()
Ejemplo n.º 49
0
    def setUp(self):
        super(NewForumThreadTests, self).setUp()
        create_test_map()

        register_user('user_1', '*****@*****.**', '111111')
        self.account_1 = AccountPrototype.get_by_nick('user_1')

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory = SubCategoryPrototype.create(category=self.category, caption='subcat-caption', order=0)
        self.thread = ThreadPrototype.create(self.subcategory, 'thread_1-caption', self.account_1, 'thread-text')

        self.message = MessagePrototype.get_priority_message()
Ejemplo n.º 50
0
    def setUp(self):
        super(PermissionPrototypeTests, self).setUp()
        create_test_map()

        register_user('user_1', '*****@*****.**', '111111')

        self.account = AccountPrototype.get_by_nick('user_1')

        self.category = CategoryPrototype.create(caption='cat-caption',
                                                 slug='cat-slug',
                                                 order=0)
        self.subcategory = SubCategoryPrototype.create(
            category=self.category, caption='subcat-caption', order=0)
Ejemplo n.º 51
0
    def setUp(self):
        super(SubscriptionPrototypeTests, self).setUp()
        create_test_map()

        register_user('user_1', '*****@*****.**', '111111')
        register_user('user_2', '*****@*****.**', '111111')

        self.account = AccountPrototype.get_by_nick('user_1')
        self.account_2 = AccountPrototype.get_by_nick('user_2')

        self.category = CategoryPrototype.create(caption='cat-caption',
                                                 slug='cat-slug',
                                                 order=0)
        self.subcategory_1 = SubCategoryPrototype.create(
            category=self.category, caption='subcat-1-caption', order=0)
        self.subcategory_2 = SubCategoryPrototype.create(
            category=self.category, caption='subcat-2-caption', order=1)

        self.thread_1_1 = ThreadPrototype.create(self.subcategory_1,
                                                 'thread-1-1-caption',
                                                 self.account,
                                                 'thread-1-1-text')
        self.thread_1_2 = ThreadPrototype.create(self.subcategory_1,
                                                 'thread-1-2-caption',
                                                 self.account,
                                                 'thread-1-2-text')
        self.thread_1_3 = ThreadPrototype.create(self.subcategory_1,
                                                 'thread-1-3-caption',
                                                 self.account_2,
                                                 'thread-1-3-text')
        self.thread_2_1 = ThreadPrototype.create(self.subcategory_2,
                                                 'thread-2-1-caption',
                                                 self.account,
                                                 'thread-2-1-text')
        self.thread_2_2 = ThreadPrototype.create(self.subcategory_2,
                                                 'thread-2-2-caption',
                                                 self.account,
                                                 'thread-2-2-text')
Ejemplo n.º 52
0
    def test_update(self):
        self.clan.update(abbr='abbr2',
                         name='updated_name',
                         motto='updated_motto',
                         description='updated_description')

        self.clan.reload()

        self.assertEqual(self.clan.abbr, 'abbr2')
        self.assertEqual(self.clan.name, 'updated_name')
        self.assertEqual(self.clan.motto, 'updated_motto')
        self.assertEqual(self.clan.description, 'updated_description')

        self.assertTrue('updated_name' in SubCategoryPrototype.get_by_id(self.clan.forum_subcategory_id).caption)
Ejemplo n.º 53
0
    def setUp(self):
        super(ThreadReadInfoPrototypeTests, self).setUp()
        create_test_map()

        register_user('user_1', '*****@*****.**', '111111')
        register_user('user_2', '*****@*****.**', '111111')

        self.account = AccountPrototype.get_by_nick('user_1')
        self.account_2 = AccountPrototype.get_by_nick('user_2')

        category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        subcategory = SubCategoryPrototype.create(category=category, caption='subcat-caption', order=0)

        self.thread = ThreadPrototype.create(subcategory, 'thread1-caption', self.account, 'thread-text')
Ejemplo n.º 54
0
    def test_update(self):
        self.clan.update(abbr=u'updated_abbr',
                         name=u'updated_name',
                         motto=u'updated_motto',
                         description=u'updated_description')

        self.clan.reload()

        self.assertEqual(self.clan.abbr, u'updated_abbr')
        self.assertEqual(self.clan.name, u'updated_name')
        self.assertEqual(self.clan.motto, u'updated_motto')
        self.assertEqual(self.clan.description, u'updated_description')

        self.assertTrue(u'updated_name' in SubCategoryPrototype.get_by_id(self.clan.forum_subcategory_id).caption)
Ejemplo n.º 55
0
    def setUp(self):
        super(SubcategoryPrototypeUpdateTests, self).setUp()

        create_test_map()

        register_user('test_user', '*****@*****.**', '111111')
        register_user('checked_user', '*****@*****.**', '111111')

        self.account = AccountPrototype.get_by_nick('test_user')
        self.checked_account = AccountPrototype.get_by_nick('checked_user')

        self.category = CategoryPrototype.create(caption='cat-caption', slug='cat-slug', order=0)
        self.subcategory = SubCategoryPrototype.create(category=self.category, caption='subcat-caption', order=2)

        self.thread_1 = ThreadPrototype.create(self.subcategory, 'thread-1-caption', self.account, 'thread-1-text')
        self.thread_2 = ThreadPrototype.create(self.subcategory, 'thread-2-caption', self.account, 'thread-2-text')
Ejemplo n.º 56
0
    def test_last_forum_posts_with_permissions(self):
        granted_account = self.accounts_factory.create_account()
        wrong_account = self.accounts_factory.create_account()

        restricted_subcategory = SubCategoryPrototype.create(category=self.category, caption='subcat2-caption', order=1, restricted=True)

        PermissionPrototype.create(granted_account, restricted_subcategory)

        restricted_thread = ThreadPrototype.create(restricted_subcategory, 'thread-restricted-caption', self.account, 'thread-text')

        self.assertEqual(set(t.id for t in ThreadPrototype.get_last_threads(account=None, limit=3)),
                         set([self.thread.id]))

        self.assertEqual(set(t.id for t in ThreadPrototype.get_last_threads(account=granted_account, limit=3)),
                         set([self.thread.id, restricted_thread.id]))

        self.assertEqual(set(t.id for t in ThreadPrototype.get_last_threads(account=wrong_account, limit=3)),
                         set([self.thread.id]))