Added tests, minor refactoring
This commit is contained in:
@@ -149,7 +149,7 @@ class Content(object):
|
|||||||
data['type'] = 'Comment'
|
data['type'] = 'Comment'
|
||||||
data['level'] = comment.nested_level
|
data['level'] = comment.nested_level
|
||||||
data['body'] = comment.body
|
data['body'] = comment.body
|
||||||
data['html'] = comment.body_html or ''
|
data['html'] = comment.body_html
|
||||||
data['created'] = cls.humanize_timestamp(comment.created_utc)
|
data['created'] = cls.humanize_timestamp(comment.created_utc)
|
||||||
data['score'] = '{0} pts'.format(
|
data['score'] = '{0} pts'.format(
|
||||||
'-' if comment.score_hidden else comment.score)
|
'-' if comment.score_hidden else comment.score)
|
||||||
|
|||||||
30
rtv/page.py
30
rtv/page.py
@@ -312,19 +312,29 @@ class Page(object):
|
|||||||
"""
|
"""
|
||||||
data = self.get_selected_item()
|
data = self.get_selected_item()
|
||||||
url_full = data.get('url_full')
|
url_full = data.get('url_full')
|
||||||
if url_full and url_full != data['permalink']:
|
permalink = data.get('permalink')
|
||||||
|
|
||||||
|
if url_full and url_full != permalink:
|
||||||
# The item is a link-only submission that won't contain text
|
# The item is a link-only submission that won't contain text
|
||||||
link = data['url_full']
|
link = url_full
|
||||||
else:
|
else:
|
||||||
extracted_links = self.content.extract_links(data.get('html', ''))
|
html = data.get('html')
|
||||||
if not extracted_links:
|
if html:
|
||||||
# Only one selection to choose from, so just pick it
|
extracted_links = self.content.extract_links(html)
|
||||||
link = data.get('permalink')
|
if not extracted_links:
|
||||||
|
# Only one selection to choose from, so just pick it
|
||||||
|
link = permalink
|
||||||
|
else:
|
||||||
|
# Let the user decide which link to open
|
||||||
|
links = []
|
||||||
|
if permalink:
|
||||||
|
links += [{'text': 'Permalink', 'href': permalink}]
|
||||||
|
links += extracted_links
|
||||||
|
link = self.term.prompt_user_to_select_link(links)
|
||||||
else:
|
else:
|
||||||
# Let the user decide which link to open
|
# Some items like hidden comments don't have any HTML to parse
|
||||||
links = [{'text': 'Permalink', 'href': data['permalink']}]
|
link = permalink
|
||||||
links += extracted_links
|
|
||||||
link = self.term.prompt_user_to_select_link(links)
|
|
||||||
return link
|
return link
|
||||||
|
|
||||||
@PageController.register(Command('COPY_PERMALINK'))
|
@PageController.register(Command('COPY_PERMALINK'))
|
||||||
|
|||||||
@@ -143,16 +143,16 @@ class SubmissionPage(Page):
|
|||||||
If there is more than one link contained in the item, prompt the user
|
If there is more than one link contained in the item, prompt the user
|
||||||
to choose which link to open.
|
to choose which link to open.
|
||||||
"""
|
"""
|
||||||
link = self.prompt_and_select_link()
|
data = self.get_selected_item()
|
||||||
if link:
|
if data['type'] == 'Submission':
|
||||||
data = self.get_selected_item()
|
link = self.prompt_and_select_link()
|
||||||
if data['type'] == 'Submission':
|
if link:
|
||||||
self.config.history.add(link)
|
self.config.history.add(link)
|
||||||
self.term.open_link(link)
|
self.term.open_link(link)
|
||||||
elif data['type'] == 'Comment' and data['permalink']:
|
elif data['type'] == 'Comment':
|
||||||
|
link = self.prompt_and_select_link()
|
||||||
|
if link:
|
||||||
self.term.open_link(link)
|
self.term.open_link(link)
|
||||||
else:
|
|
||||||
self.term.flash()
|
|
||||||
else:
|
else:
|
||||||
self.term.flash()
|
self.term.flash()
|
||||||
|
|
||||||
|
|||||||
201
tests/cassettes/test_submission_prompt_and_select_link.yaml
Normal file
201
tests/cassettes/test_submission_prompt_and_select_link.yaml
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
interactions:
|
||||||
|
- request:
|
||||||
|
body: null
|
||||||
|
headers:
|
||||||
|
Accept: ['*/*']
|
||||||
|
Accept-Encoding: ['gzip, deflate']
|
||||||
|
Connection: [keep-alive]
|
||||||
|
User-Agent: [rtv test suite PRAW/3.6.1 Python/3.7.0 b'Darwin-17.7.0-x86_64-i386-64bit']
|
||||||
|
method: GET
|
||||||
|
uri: https://www.reddit.com/r/Python/comments/2xmo63.json
|
||||||
|
response:
|
||||||
|
body:
|
||||||
|
string: !!binary |
|
||||||
|
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
|
||||||
|
headers:
|
||||||
|
Accept-Ranges: [bytes]
|
||||||
|
Connection: [keep-alive]
|
||||||
|
Content-Encoding: [gzip]
|
||||||
|
Content-Length: ['9158']
|
||||||
|
Content-Type: [application/json; charset=UTF-8]
|
||||||
|
Date: ['Sun, 03 Feb 2019 05:20:09 GMT']
|
||||||
|
Server: [snooserv]
|
||||||
|
Set-Cookie: [edgebucket=llRU1AJmllWLGcM0iA; Domain=reddit.com; Max-Age=63071999;
|
||||||
|
Path=/; secure]
|
||||||
|
Strict-Transport-Security: [max-age=15552000; includeSubDomains; preload]
|
||||||
|
Vary: [accept-encoding]
|
||||||
|
Via: [1.1 varnish]
|
||||||
|
X-Cache: [MISS]
|
||||||
|
X-Cache-Hits: ['0']
|
||||||
|
X-Moose: [majestic]
|
||||||
|
X-Served-By: [cache-mdw17380-MDW]
|
||||||
|
X-Timer: ['S1549171210.567463,VS0,VE236']
|
||||||
|
access-control-allow-origin: ['*']
|
||||||
|
access-control-expose-headers: [X-Moose]
|
||||||
|
cache-control: ['max-age=0, must-revalidate']
|
||||||
|
x-content-type-options: [nosniff]
|
||||||
|
x-frame-options: [SAMEORIGIN]
|
||||||
|
x-ua-compatible: [IE=edge]
|
||||||
|
x-xss-protection: [1; mode=block]
|
||||||
|
status: {code: 200, message: OK}
|
||||||
|
version: 1
|
||||||
@@ -582,3 +582,43 @@ def test_copy_to_clipboard_linux(submission_page, terminal, refresh_token):
|
|||||||
# Neither xclip or xsel installed, this is what happens on Travis CI
|
# Neither xclip or xsel installed, this is what happens on Travis CI
|
||||||
text = b'Failed to copy url: External copy application not found'
|
text = b'Failed to copy url: External copy application not found'
|
||||||
window.addstr.assert_called_with(1, 1, text)
|
window.addstr.assert_called_with(1, 1, text)
|
||||||
|
|
||||||
|
|
||||||
|
def test_submission_prompt_and_select_link(submission_page, terminal):
|
||||||
|
|
||||||
|
# A link submission should return the URL that it's pointing to
|
||||||
|
link = submission_page.prompt_and_select_link()
|
||||||
|
assert link == 'https://github.com/michael-lazar/rtv'
|
||||||
|
|
||||||
|
with mock.patch.object(submission_page, 'clear_input_queue'):
|
||||||
|
submission_page.controller.trigger('j')
|
||||||
|
|
||||||
|
# The first comment doesn't have any links in the comment body
|
||||||
|
link = submission_page.prompt_and_select_link()
|
||||||
|
data = submission_page.get_selected_item()
|
||||||
|
assert link == data['permalink']
|
||||||
|
|
||||||
|
with mock.patch.object(submission_page, 'clear_input_queue'):
|
||||||
|
submission_page.controller.trigger('j')
|
||||||
|
|
||||||
|
# The second comment has a link embedded in the comment body, and
|
||||||
|
# the user is prompted to select which link to open
|
||||||
|
with mock.patch.object(terminal, 'prompt_user_to_select_link') as prompt:
|
||||||
|
prompt.return_value = 'https://selected_link'
|
||||||
|
|
||||||
|
link = submission_page.prompt_and_select_link()
|
||||||
|
data = submission_page.get_selected_item()
|
||||||
|
|
||||||
|
assert link == prompt.return_value
|
||||||
|
|
||||||
|
embedded_url = 'http://peterdowns.com/posts/first-time-with-pypi.html'
|
||||||
|
assert prompt.call_args[0][0] == [
|
||||||
|
{'text': 'Permalink', 'href': data['permalink']},
|
||||||
|
{'text': 'Relevant tutorial', 'href': embedded_url}
|
||||||
|
]
|
||||||
|
|
||||||
|
submission_page.controller.trigger(' ')
|
||||||
|
|
||||||
|
# The comment is now hidden so there are no links to select
|
||||||
|
link = submission_page.prompt_and_select_link()
|
||||||
|
assert link is None
|
||||||
|
|||||||
Reference in New Issue
Block a user