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)
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')
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')
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')
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')
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')
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
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')
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)
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')
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()
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))
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')
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')
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)
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) })
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')
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]))
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)
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 })
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)
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
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)
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
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]))
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')
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
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)
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")
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())
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])
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)
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)
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)
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')
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()
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')
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')
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)
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()
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()
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)
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')
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)
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')
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)
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')
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]))