def test_forum_save(category, moderator_user): """Test the save forum method""" forum = Forum(title="Test Forum", category_id=category.id) forum.moderators = [moderator_user] forum.save() assert forum.title == "Test Forum" assert forum.moderators == [moderator_user]
def test_topic_merge_other_forum(topic): """You cannot merge a topic with a topic from another forum.""" forum_other = Forum(title="Test Forum 2", category_id=1) forum_other.save() topic_other = Topic(title="Test Topic 2") post_other = Post(content="Test Content 2") topic_other.save(user=topic.user, forum=forum_other, post=post_other) assert not topic.merge(topic_other)
def test_forum_save(category, moderator_user): forum = Forum(title="Test Forum", category_id=category.id) forum.save() assert forum.title == "Test Forum" # Test with adding a moderator forum.save([moderator_user]) for moderator in forum.moderators: assert moderator == moderator_user
def test_topic_move(topic_normal): forum_other = Forum(title="Test Forum 2", category_id=1) forum_other.save() forum_old = Forum.query.filter_by(id=topic_normal.forum_id).first() assert topic_normal.move(forum_other) assert forum_old.topics == [] assert forum_old.topic_count == 0 assert forum_old.post_count == 0 assert forum_other.topic_count == 1 assert forum_other.post_count == 1
def create_test_data(): """ Creates 5 users, 2 categories and 2 forums in each category. It also opens a new topic topic in each forum with a post. """ create_default_groups() create_default_settings() # create 5 users for u in range(1, 6): username = "******" % u email = "*****@*****.**" % u user = User(username=username, password="******", email=email) user.primary_group_id = u user.save() user1 = User.query.filter_by(id=1).first() user2 = User.query.filter_by(id=2).first() # create 2 categories for i in range(1, 3): category_title = "Test Category %s" % i category = Category(title=category_title, description="Test Description") category.save() # create 2 forums in each category for j in range(1, 3): if i == 2: j += 2 forum_title = "Test Forum %s %s" % (j, i) forum = Forum(title=forum_title, description="Test Description", category_id=i) forum.save() # create a topic topic = Topic() post = Post() topic.title = "Test Title %s" % j post.content = "Test Content" topic.save(post=post, user=user1, forum=forum) # create a second post in the forum post = Post() post.content = "Test Post" post.save(user=user2, topic=topic)
def save(self): data = self.data # delete submit and csrf_token from data data.pop('submit', None) data.pop('csrf_token', None) forum = Forum(**data) return forum.save()
def save(self): data = self.data # remove the button data.pop('submit', None) forum = Forum(**data) # flush SQLA info from created instance so that it can be merged return forum.save()
def test_topic_move(topic): """Tests the topic move method.""" forum_other = Forum(title="Test Forum 2", category_id=1) forum_other.save() forum_old = Forum.query.filter_by(id=topic.forum_id).first() assert topic.move(forum_other) assert forum_old.topics.all() == [] assert forum_old.last_post_id is None assert forum_old.topic_count == 0 assert forum_old.post_count == 0 assert forum_other.last_post_id == topic.last_post_id assert forum_other.topic_count == 1 assert forum_other.post_count == 1
def save(self): data = self.data # remove the button data.pop('submit', None) forum = Forum(**data) # flush SQLA info from created instance so that it can be merged make_transient(forum) make_transient_to_detached(forum) return forum.save()
def save(self): data = self.data # delete submit and csrf_token from data data.pop('submit', None) data.pop('csrf_token', None) forum = Forum(**data) # flush SQLA info from created instance so that it can be merged make_transient(forum) make_transient_to_detached(forum) return forum.save()
def save(self): forum = Forum(title=self.title.data, description=self.description.data, position=self.position.data) if self.is_category.data: forum.is_category = True else: forum.parent_id = self.parent.data.id return forum.save()
def create_welcome_forum(): """ This will create the `welcome forum` that nearly every forum software has after the installation process is finished """ if User.query.count() < 1: raise "You need to create the admin user first!" user = User.query.filter_by(id=1).first() category = Category(title="My Category", position=1) category.save() forum = Forum(title="Welcome", description="Your first forum", category_id=category.id) forum.save() topic = Topic(title="Welcome!") post = Post(content="Have fun with your new FlaskBB Forum!") topic.save(user=user, forum=forum, post=post)
def create_welcome_forum(): """This will create the `welcome forum` with a welcome topic. Returns True if it's created successfully. """ if User.query.count() < 1: return False user = User.query.filter_by(id=1).first() category = Category(title="My Category", position=1) category.save() forum = Forum(title="Welcome", description="Your first forum", category_id=category.id) forum.save() topic = Topic(title="Welcome!") post = Post(content="Have fun with your new FlaskBB Forum!") topic.save(user=user, forum=forum, post=post) return True
def save(self): forum = Forum(title=self.title.data, description=self.description.data, position=self.position.data) if self.moderators.data and not self.is_category.data: forum.moderators = self.moderators.data if self.is_category.data: forum.is_category = True forum.parent_id = None else: forum.parent_id = self.parent.data.id return forum.save()
def save(self): forum = Forum(title=self.title.data, description=self.description.data, position=self.position.data, external=self.external.data, show_moderators=self.show_moderators.data, locked=self.locked.data) if self.moderators.data: # is already validated forum.moderators = self.moderators.data forum.category_id = self.category.data.id return forum.save()
def create_test_data(): create_default_groups() # create 5 users for u in range(1, 6): username = "******" % u email = "*****@*****.**" % u user = User(username=username, password="******", email=email) user.primary_group_id = u user.save() # create a category category = Forum(is_category=True, title="Test Category", description="Test Description") category.save() # create 2 forums in the category for i in range(1, 3): forum_title = "Test Forum %s " % i forum = Forum(title=forum_title, description="Test Description", parent_id=category.id) forum.save() # Create a subforum subforum_title = "Test Subforum %s " % i subforum = Forum(title=subforum_title, description="Test Description", parent_id=forum.id) subforum.save() user = User.query.filter_by(id=1).first() # create 1 topic in each forum for i in range(2, 6): # Forum ids are not sequential because categories. forum = Forum.query.filter_by(id=i).first() topic = Topic() post = Post() topic.title = "Test Title %s" % (i-1) post.content = "Test Content" topic.save(user=user, forum=forum, post=post)
def forum(category): """A single forum in a category.""" forum = Forum(title="Test Forum", category_id=category.id) forum.save() return forum
def create_test_data(users=5, categories=2, forums=2, topics=1, posts=1): """Creates 5 users, 2 categories and 2 forums in each category. It also creates a new topic topic in each forum with a post. Returns the amount of created users, categories, forums, topics and posts as a dict. :param users: The number of users. :param categories: The number of categories. :param forums: The number of forums which are created in each category. :param topics: The number of topics which are created in each forum. :param posts: The number of posts which are created in each topic. """ create_default_groups() create_default_settings() data_created = {'users': 0, 'categories': 0, 'forums': 0, 'topics': 0, 'posts': 0} # create 5 users for u in range(1, users + 1): username = "******" % u email = "*****@*****.**" % u user = User(username=username, password="******", email=email) user.primary_group_id = u user.activated = True user.save() data_created['users'] += 1 user1 = User.query.filter_by(id=1).first() user2 = User.query.filter_by(id=2).first() # lets send them a few private messages for i in range(1, 3): # TODO pass # create 2 categories for i in range(1, categories + 1): category_title = "Test Category %s" % i category = Category(title=category_title, description="Test Description") category.save() data_created['categories'] += 1 # create 2 forums in each category for j in range(1, forums + 1): if i == 2: j += 2 forum_title = "Test Forum %s %s" % (j, i) forum = Forum(title=forum_title, description="Test Description", category_id=i) forum.save() data_created['forums'] += 1 for t in range(1, topics + 1): # create a topic topic = Topic(title="Test Title %s" % j) post = Post(content="Test Content") topic.save(post=post, user=user1, forum=forum) data_created['topics'] += 1 for p in range(1, posts + 1): # create a second post in the forum post = Post(content="Test Post") post.save(user=user2, topic=topic) data_created['posts'] += 1 return data_created
def forum(category, default_settings, default_groups): """A single forum in a category.""" forum = Forum(title="Test Forum", category_id=category.id) forum.groups = default_groups forum.save() return forum
def save(self): data = self.data # remove the button data.pop('submit', None) forum = Forum(**data) return forum.save()
def forum_locked(category, default_settings): """A single locked forum in a category.""" forum = Forum(title="Test Forum", category_id=category.id) forum.locked = True forum.save() return forum
def forum(category): forum = Forum(title="Test Forum", category_id=category.id) forum.save() return forum
def save(self): forum = Forum(title=self.title.data, description=self.description.data, position=self.position.data, category_id=self.category.data.id) return forum.save()