Example #1
0
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
Example #2
0
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)
Example #3
0
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)
Example #4
0
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'
Example #5
0
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"))
Example #6
0
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
Example #7
0
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 == 'こんにちは'
Example #8
0
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]
Example #9
0
def post_get():
    blog = BlogAction.ensure_global_blog_created(get_db())

    return render_template("post.html", blog=blog)
Example #10
0
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)