Merge branch 'mfussenegger-search-engine-syntax'
https://github.com/The-Compiler/qutebrowser/pull/284
This commit is contained in:
commit
1f666b2b2e
@ -115,6 +115,7 @@ Contributors, sorted by the number of commits in descending order:
|
|||||||
* Claude
|
* Claude
|
||||||
* rikn00
|
* rikn00
|
||||||
* Brian Jackson
|
* Brian Jackson
|
||||||
|
* Mathias Fussenegger
|
||||||
* Peter Vilim
|
* Peter Vilim
|
||||||
// QUTE_AUTHORS_END
|
// QUTE_AUTHORS_END
|
||||||
|
|
||||||
|
@ -91,22 +91,29 @@ class SearchUrlTests(unittest.TestCase):
|
|||||||
self.assertEqual(url.host(), 'www.example.com')
|
self.assertEqual(url.host(), 'www.example.com')
|
||||||
self.assertEqual(url.query(), 'q=testfoo')
|
self.assertEqual(url.query(), 'q=testfoo')
|
||||||
|
|
||||||
def test_engine_post(self):
|
def test_engine_pre(self):
|
||||||
"""Test search engine with an appended !hasbang."""
|
"""Test first word is search engine name"""
|
||||||
url = urlutils._get_search_url('testfoo !test')
|
url = urlutils._get_search_url('test testfoo')
|
||||||
self.assertEqual(url.host(), 'www.qutebrowser.org')
|
self.assertEqual(url.host(), 'www.qutebrowser.org')
|
||||||
self.assertEqual(url.query(), 'q=testfoo')
|
self.assertEqual(url.query(), 'q=testfoo')
|
||||||
|
|
||||||
def test_engine_pre(self):
|
def test_engine_pre_whitespace_at_end(self):
|
||||||
"""Test search engine with a prepended !hasbang."""
|
"""Test first word is search engine name"""
|
||||||
url = urlutils._get_search_url('!test testfoo')
|
url = urlutils._get_search_url('test testfoo ')
|
||||||
self.assertEqual(url.host(), 'www.qutebrowser.org')
|
self.assertEqual(url.host(), 'www.qutebrowser.org')
|
||||||
self.assertEqual(url.query(), 'q=testfoo')
|
self.assertEqual(url.query(), 'q=testfoo')
|
||||||
|
|
||||||
|
def test_engine_with_bang_pre(self):
|
||||||
|
"""Test search engine with a prepended !hasbang."""
|
||||||
|
url = urlutils._get_search_url('!python testfoo')
|
||||||
|
self.assertEqual(url.host(), 'www.example.com')
|
||||||
|
self.assertEqual(url.query(), 'q=%21python testfoo')
|
||||||
|
|
||||||
def test_engine_wrong(self):
|
def test_engine_wrong(self):
|
||||||
"""Test with wrong search engine."""
|
"""Test with wrong search engine."""
|
||||||
with self.assertRaises(urlutils.FuzzyUrlError):
|
url = urlutils._get_search_url('blub testfoo')
|
||||||
_ = urlutils._get_search_url('!blub testfoo')
|
self.assertEqual(url.host(), 'www.example.com')
|
||||||
|
self.assertEqual(url.query(), 'q=blub testfoo')
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
urlutils.config = self.config
|
urlutils.config = self.config
|
||||||
|
@ -46,17 +46,18 @@ def _get_search_url(txt):
|
|||||||
The search URL as a QUrl.
|
The search URL as a QUrl.
|
||||||
"""
|
"""
|
||||||
log.url.debug("Finding search engine for '{}'".format(txt))
|
log.url.debug("Finding search engine for '{}'".format(txt))
|
||||||
r = re.compile(r'(^|\s+)!(\w+)($|\s+)')
|
r = re.compile(r'(^\w+)\s+(\w+)($|\s+)')
|
||||||
m = r.search(txt)
|
m = r.search(txt)
|
||||||
if m:
|
if m:
|
||||||
engine = m.group(2)
|
engine = m.group(1)
|
||||||
try:
|
try:
|
||||||
template = config.get('searchengines', engine)
|
template = config.get('searchengines', engine)
|
||||||
except config.NoOptionError:
|
except config.NoOptionError:
|
||||||
raise FuzzyUrlError("Search engine {} not found!".format(
|
template = config.get('searchengines', 'DEFAULT')
|
||||||
engine))
|
term = txt
|
||||||
term = r.sub('', txt)
|
else:
|
||||||
log.url.debug("engine {}, term '{}'".format(engine, term))
|
term = m.group(2)
|
||||||
|
log.url.debug("engine {}, term '{}'".format(engine, term))
|
||||||
else:
|
else:
|
||||||
template = config.get('searchengines', 'DEFAULT')
|
template = config.get('searchengines', 'DEFAULT')
|
||||||
term = txt
|
term = txt
|
||||||
|
Loading…
Reference in New Issue
Block a user