示例#1
0
def test_add_post_ok(form_intercept, set_mock, user, blog_id, blog, result_url, draft, tags, forbid_comment):
    set_mock({
        '/topic/add/': (None, {
            'headers': {'location': result_url},
            'status': 302, 'status_msg': 'Found'
        }
    )})
    @form_intercept('/topic/add/')
    def topic_add(data, headers):
        assert data.get('blog_id') == [text(blog_id if blog_id is not None else 0).encode('utf-8')]
        assert data.get('security_ls_key') == [b'0123456789abcdef0123456789abcdef']
        assert data.get('topic_title') == ['Т0'.encode('utf-8')]
        assert data.get('topic_text') == ['Б1'.encode('utf-8')]
        assert data.get('topic_tags') == ['Т2, Т3'.encode('utf-8')]
        if draft:
            assert data.get('submit_topic_save') == ['Сохранить в черновиках'.encode('utf-8')]
        else:
            assert data.get('submit_topic_publish') == ['Опубликовать'.encode('utf-8')]
        if forbid_comment:
            assert data.get('topic_forbid_comment') == [b'1']
        else:
            assert 'topic_forbid_comment' not in data

    result = user.add_post(blog_id, 'Т0', 'Б1', tags, forbid_comment, draft=draft)
    assert result == (blog, 1)
示例#2
0
def test_add_post_error(set_mock, user):
    set_mock({'/topic/add/': 'topic_add_error.html'})
    with pytest.raises(api.TabunResultError) as excinfo:
        user.add_post(None, '', '', [])
    assert excinfo.value.message == 'Поле Заголовок слишком короткое (минимально допустимо 2 символов)'