def create_topic(): form = TopicForm(request.form) if not form.validate(): return render_template("forum/topic_new.html", form=form) name = form.name.data new_topic = Topic(name, g.area.id) new_topic.account_id = current_user.id db.session().add(new_topic) db.session().commit() message = form.message.data # Remove possible ghost messages because SQLAlchemy reuses ids Message.query.filter_by(topic_id=new_topic.id).delete() new_msg = Message(message, new_topic.id) new_msg.account_id = current_user.id db.session().add(new_msg) db.session().commit() return redirect(url_for("topic.topic", area_name=g.area.name, created=new_topic.created))
def test_destroy_with_comment(client): topic = Topic.create({ 'title': 'title1', 'body': 'body1' }) comment1 = Comment.create({ 'topic_id': topic.id(), 'body': 'body1' }) comment2 = Comment.create({ 'topic_id': topic.id(), 'body': 'body2' }) topic.destroy() assert(not Topic.is_exists(topic.id())) assert(not Comment.is_exists(comment1.id())) assert(not Comment.is_exists(comment2.id()))
def new(): if request.method == 'POST': Topic.create({ 'title': request.form['title'], 'body': request.form['body'] }) return redirect(url_for('topic.index')) else: return render_template('topics/new.html')
def test_update(client): topic = Topic.create({ 'title': 'title2', 'body': 'body2' }) assert 'title2', topic.title() assert 'body2', topic.body() topic.update({ 'title': 'title3', 'body': 'body3' }) assert 'title3', topic.title() assert 'body3', topic.body() topic = Topic.find(topic.id()) assert 'title3', topic.title() assert 'body3', topic.body()
def edit(id): topic = Topic.find(id) if request.method == 'POST': topic.update({ 'title': request.form['title'], 'body': request.form['body'] }) return redirect(url_for('topic.show', id=id)) else: topic = Topic.find(id) return render_template('topics/edit.html', topic=topic)
def forum_main(): areas = Area.query.all() most_active_area = Area.find_area_with_most_messages() message_count = Message.find_message_count() hot_topic = Topic.find_hot_topic() topic_count = Topic.find_topic_count() return render_template("forum.html", areas=areas, most_active_area=most_active_area, message_count=message_count, hot_topic=hot_topic, topic_count=topic_count)
def test_get_topics_index(client): expected_title = 'indexindex_title' topic = Topic.create({'title': expected_title, 'body': 'a'}) response = client.get('/topics/') assert response.status_code == 200 actual = response.get_data() assert expected_title in actual
def new_comment(id): topic = Topic.find(id) if request.method == 'POST': Comment.create({ 'topic_id': topic.id(), 'body': request.form['comment_body'] }) return redirect(url_for('topic.show', id=id)) else: return render_template('comments/new.html', topic=topic)
def test_all(client): topic1 = Topic.create({ 'title': 'title1', 'body': 'body1' }) topic2 = Topic.create({ 'title': 'title2', 'body': 'body2' }) topics = Topic.all() assert len(topics) == 2 assert Topic.find(topic1.id()).title() == topic1.title() assert Topic.find(topic1.id()).body() == topic1.body() assert Topic.find(topic2.id()).title() == topic2.title() assert Topic.find(topic2.id()).body() == topic2.body() topics = Topic.all(limit=1) assert len(topics) == 1
def test_get_topics_edit(client): title = 'test_get_topics_edit_title' body = 'test_get_topics_edit_body' topic = Topic.create({'title': title, 'body': body}) response = client.get('/topics/%s/edit' % topic.id()) assert response.status_code == 200 actual = response.get_data() assert title in actual assert body in actual
def test_post_topics_edit(client): title = 'test_get_topics_edit_title' body = 'test_get_topics_edit_body' topic = Topic.create({'title': title, 'body': body}) response = client.post('/topics/%s/edit' % topic.id(), data={ 'title': 'titletitle', 'body': 'bodybody' }) assert response.status_code == 302 response = client.get('/topics/%s' % topic.id()) actual = response.get_data() assert 'titletitle' in actual assert 'bodybody' in actual
def test_post_topics_delete(client): topic = Topic.create({'title': 'title', 'body': 'body'}) response = client.post('/topics/%s/delete' % topic.id(), data={'id': topic.id()}) assert response.status_code == 302 assert (not Topic.is_exists(topic.id()))
def test_destroy(client): topic = Topic.create({ 'title': 'title2', 'body': 'body2' }) topic.destroy() assert(not Topic.is_exists(topic.id()))
def index(): topics = Topic.all() return render_template('topics/index.html', topics=topics)
def test_find(client): topic = Topic.create({ 'title': 'title2', 'body': 'body2' }) topic = Topic.find(topic.id()) assert 'title2', topic.title() assert 'body2', topic.body() assert type(topic) == Topic
def test_new(client): topic = Topic({ 'title': 'fi', 'body': 'body' }) assert 'fi', topic.title assert 'body', topic.body
def show(id): topic = Topic.find(id) comments = topic.comments() return render_template('topics/show.html', topic=topic, comments=comments)
def delete(id): topic = Topic.find(id) topic.destroy() return redirect(url_for('topic.index'))
def test_destroy(client): topic = Topic.create({'title': 'title1', 'body': 'body1'}) comment = Comment.create({'topic_id': topic.id(), 'body': 'body1'}) comment.destroy() assert (Topic.is_exists(topic.id())) assert (not Comment.is_exists(comment.id()))