def test_ensure_global_blog_created(): db = DB() with global_user(random_string(10)) as global_user_name: assert UserLoader.find_by_name(db, global_user_name) is None blog = BlogAction.ensure_global_blog_created(db) found_user = UserLoader.find_by_name(db, global_user_name) assert blog.owner_id == found_user.id # Check no exeception raises blog_again = BlogAction.ensure_global_blog_created(db) assert blog_again.id == blog.id
def entry(entry_id): blog = BlogAction.ensure_global_blog_created(get_db()) entry = EntryLoader.find_by_id(get_db(), entry_id) if entry is None: abort(404) if entry.blog_id != blog.id: abort(403) return render_template("entry.html", blog=blog, entry=entry)
def create_blog(user=None): db = DB() if user is None: user = create_user() new_blog_id = BlogAction.create( db, owner_id=user.id, title=random_string(10), ) return BlogLoader.find_by_id(db, new_blog_id)
def test_entry(): db = DB() with global_user(random_string(5)): blog = BlogAction.ensure_global_blog_created(db) entry = create_entry(blog=blog) res1 = web_client().get('/entry/' + str(entry.id)) assert res1.status == '200 OK' d = pq(res1.data) res2 = web_client().get('/entry/0') assert res2.status == '404 NOT FOUND'
def post_post(): blog = BlogAction.ensure_global_blog_created(get_db()) title = request.form["title"] body = request.form["body"] blog_id = int(request.form["blog_id"]) if int(blog_id) != blog.id: abort(400) EntryAction.post(get_db(), blog_id=blog.id, title=title, body=body) return redirect(url_for("index"))
def test_create(): db = DB() user = create_user() title = random_string(10) blog_id = BlogAction.create( db, owner_id=user.id, title=title, ) found_blog = BlogLoader.find_by_id(db, blog_id) assert found_blog.id == blog_id assert found_blog.owner_id == user.id assert found_blog.title == title
def test_post_create_entry(): db = DB() with global_user(random_string(5)), web_client() as wc: blog = BlogAction.ensure_global_blog_created(db) res = wc.post('/-/post', data=dict( title='はろー', body='こんにちは', blog_id=blog.id, )) assert res.status == '302 FOUND' assert res.headers['Location'] == url_for('index', _external=True) entry = EntryLoader.find_entries(db, blog.id, limit=1)[0] assert entry.title == 'はろー' assert entry.body == 'こんにちは'
def test_index_with_entries(): db = DB() with global_user(random_string(5)): blog = BlogAction.ensure_global_blog_created(db) entries = [] with freeze_time('2017-01-13 12:00:02'): entries.append(create_entry(blog=blog)) with freeze_time('2017-01-13 12:00:01'): entries.append(create_entry(blog=blog)) with freeze_time('2017-01-13 12:00:00'): entries.append(create_entry(blog=blog)) res = web_client().get('/') assert res.status == '200 OK' d = pq(res.data) assert [int(d(a).attr('data-entry-id')) for a in d('.entry')] == [e.id for e in entries]
def post_get(): blog = BlogAction.ensure_global_blog_created(get_db()) return render_template("post.html", blog=blog)
def index(): blog = BlogAction.ensure_global_blog_created(get_db()) entries = EntryLoader.find_entries(get_db(), blog.id, limit=5) return render_template("index.html", blog=blog, entries=entries)