def test_send_wms(client, mocker): getter = mocker.patch('requests.get') poster = mocker.patch('requests.post') urlopen = mocker.patch('urllib.request.urlopen') post = Post('note') post.content = 'This note links to [wikipedia](https://en.wikipedia.org/wiki/Webmention)' post.content_html = 'This note links to <a href="https://en.wikipedia.org/wiki/Webmention">wikipedia</a>' post.path = '2014/11/wm-sender-test' db.session.add(post) db.session.commit() urlopen.return_value = FakeUrlOpen( info=FakeUrlMetadata(content_type='text/html', content_length=256)) getter.return_value = FakeResponse(text="""<!DOCTYPE html> <html> <link rel="webmention" href="https://en.wikipedia.org/endpoint"> </html>""") wm_sender.do_send_webmentions(post.id) getter.assert_called_with('https://en.wikipedia.org/wiki/Webmention') poster.assert_called_with('https://en.wikipedia.org/endpoint', data={ 'source': post.permalink, 'target': 'https://en.wikipedia.org/wiki/Webmention', }, headers={ 'content-type': 'application/x-www-form-urlencoded', 'accept': 'application/json', })
def source_post(app, db): post = Post('note') post.content = 'This note links to [wikipedia](https://en.wikipedia.org/wiki/Webmention)' post.content_html = 'This note links to <a href="https://en.wikipedia.org/wiki/Webmention">wikipedia</a>' post.path = '2014/11/wm-sender-test' db.session.add(post) db.session.commit() return post
def new_post(type): post = Post(type) post.published = post.updated = datetime.datetime.utcnow() post.content = '' if type == 'reply': in_reply_to = request.args.get('url') if in_reply_to: post.in_reply_to = [in_reply_to] # post.reply_contexts = [contexts.create_context(in_reply_to)] elif type == 'share': repost_of = request.args.get('url') if repost_of: post.repost_of = [repost_of] # post.repost_contexts = [contexts.create_context(repost_of)] elif type == 'like': like_of = request.args.get('url') if like_of: post.like_of = [like_of] # post.like_contexts = [contexts.create_context(like_of)] elif type == 'bookmark': bookmark_of = request.args.get('url') if bookmark_of: post.bookmark_of = [bookmark_of] # post.bookmark_contexts = [contexts.create_context(bookmark_of)] post.content = request.args.get('content') button_text = { 'publish': 'Publish', 'publish_quietly': 'Publish Quietly', 'publish+tweet': 'Publish & Tweet', 'save_draft': 'Save as Draft', } if type == 'event': venues = Venue.query.order_by(Venue.name).all() else: venues = [] return render_template('admin/edit_' + type + '.jinja2', edit_type='new', post=post, tags=get_tags(), top_tags=get_top_tags(20), button_text=button_text, venues=venues)
def new_post(type): if type not in util.POST_TYPES: abort(404) post = Post(type) post.published = post.updated = datetime.datetime.utcnow() post.content = '' if type == 'reply': in_reply_to = request.args.get('url') if in_reply_to: post.in_reply_to = [in_reply_to] elif type == 'share': repost_of = request.args.get('url') if repost_of: post.repost_of = [repost_of] elif type == 'like': like_of = request.args.get('url') if like_of: post.like_of = [like_of] elif type == 'bookmark': bookmark_of = request.args.get('url') if bookmark_of: post.bookmark_of = [bookmark_of] post.content = request.args.get('content') button_text = { 'publish': 'Publish', 'publish_quietly': 'Publish Quietly', 'publish+tweet': 'Publish & Tweet', 'save_draft': 'Save as Draft', } venues = Venue.query.order_by(Venue.name).all() return render_template('admin/edit_' + type + '.jinja2', edit_type='new', post=post, tags=get_tags(), top_tags=get_top_tags(20), people=get_contact_nicks(), button_text=button_text, venues=venues)