2020-04-16 02:41:53 +03:00
|
|
|
import json
|
|
|
|
|
2020-12-06 01:01:21 +03:00
|
|
|
from test.conftest import demo_config
|
2020-04-16 02:41:53 +03:00
|
|
|
|
|
|
|
|
|
|
|
def test_main(client):
|
|
|
|
rv = client.get('/')
|
|
|
|
assert rv._status_code == 200
|
|
|
|
|
|
|
|
|
|
|
|
def test_search(client):
|
|
|
|
rv = client.get('/search?q=test')
|
|
|
|
assert rv._status_code == 200
|
|
|
|
|
2020-06-02 21:54:47 +03:00
|
|
|
|
2020-05-18 19:28:23 +03:00
|
|
|
def test_feeling_lucky(client):
|
|
|
|
rv = client.get('/search?q=!%20test')
|
|
|
|
assert rv._status_code == 303
|
|
|
|
|
2020-04-16 02:41:53 +03:00
|
|
|
|
2020-10-10 22:55:14 +03:00
|
|
|
def test_ddg_bang(client):
|
|
|
|
rv = client.get('/search?q=!gh%20whoogle')
|
|
|
|
assert rv._status_code == 302
|
|
|
|
assert rv.headers.get('Location').startswith('https://github.com')
|
|
|
|
|
|
|
|
rv = client.get('/search?q=!w%20github')
|
|
|
|
assert rv._status_code == 302
|
|
|
|
assert rv.headers.get('Location').startswith('https://en.wikipedia.org')
|
|
|
|
|
|
|
|
|
2020-04-16 02:41:53 +03:00
|
|
|
def test_config(client):
|
2020-04-29 05:50:12 +03:00
|
|
|
rv = client.post('/config', data=demo_config)
|
|
|
|
assert rv._status_code == 302
|
2020-04-16 02:41:53 +03:00
|
|
|
|
|
|
|
rv = client.get('/config')
|
|
|
|
assert rv._status_code == 200
|
|
|
|
|
|
|
|
config = json.loads(rv.data)
|
|
|
|
for key in demo_config.keys():
|
|
|
|
assert config[key] == demo_config[key]
|
2020-04-29 03:59:33 +03:00
|
|
|
|
2020-11-11 08:40:49 +03:00
|
|
|
# Test setting config via search
|
|
|
|
custom_config = '&dark=1&lang_interface=lang_en'
|
|
|
|
rv = client.get('/search?q=test' + custom_config)
|
|
|
|
assert rv._status_code == 200
|
|
|
|
assert custom_config.replace('&', '&') in str(rv.data)
|
|
|
|
|
2020-04-29 03:59:33 +03:00
|
|
|
|
|
|
|
def test_opensearch(client):
|
|
|
|
rv = client.get('/opensearch.xml')
|
|
|
|
assert rv._status_code == 200
|
2020-12-06 01:01:21 +03:00
|
|
|
assert '<ShortName>Whoogle</ShortName>' in str(rv.data)
|