forked from Ponysearch/Ponysearch
add unit && robot tests
This commit is contained in:
parent
fe691a0988
commit
f0fd9ad628
2 changed files with 209 additions and 0 deletions
|
@ -42,3 +42,111 @@ Change language
|
||||||
Location Should Be http://localhost:11111/
|
Location Should Be http://localhost:11111/
|
||||||
Page Should Contain rólunk
|
Page Should Contain rólunk
|
||||||
Page Should Contain beállítások
|
Page Should Contain beállítások
|
||||||
|
|
||||||
|
Change method
|
||||||
|
Page Should Contain about
|
||||||
|
Page Should Contain preferences
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
Select From List method GET
|
||||||
|
Submit Form id=search_form
|
||||||
|
Location Should Be http://localhost:11111/
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be method GET
|
||||||
|
Select From List method POST
|
||||||
|
Submit Form id=search_form
|
||||||
|
Location Should Be http://localhost:11111/
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be method POST
|
||||||
|
|
||||||
|
Change theme
|
||||||
|
Page Should Contain about
|
||||||
|
Page Should Contain preferences
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be theme default
|
||||||
|
Select From List theme oscar
|
||||||
|
Submit Form id=search_form
|
||||||
|
Location Should Be http://localhost:11111/
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be theme oscar
|
||||||
|
|
||||||
|
Change safesearch
|
||||||
|
Page Should Contain about
|
||||||
|
Page Should Contain preferences
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be safesearch None
|
||||||
|
Select From List safesearch Strict
|
||||||
|
Submit Form id=search_form
|
||||||
|
Location Should Be http://localhost:11111/
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be safesearch Strict
|
||||||
|
|
||||||
|
Change image proxy
|
||||||
|
Page Should Contain about
|
||||||
|
Page Should Contain preferences
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be image_proxy Disabled
|
||||||
|
Select From List image_proxy Enabled
|
||||||
|
Submit Form id=search_form
|
||||||
|
Location Should Be http://localhost:11111/
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be image_proxy Enabled
|
||||||
|
|
||||||
|
Change search language
|
||||||
|
Page Should Contain about
|
||||||
|
Page Should Contain preferences
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be language Automatic
|
||||||
|
Select From List language Turkish (Turkey) - tr_TR
|
||||||
|
Submit Form id=search_form
|
||||||
|
Location Should Be http://localhost:11111/
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be language Turkish (Turkey) - tr_TR
|
||||||
|
|
||||||
|
Change autocomplete
|
||||||
|
Page Should Contain about
|
||||||
|
Page Should Contain preferences
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be autocomplete -
|
||||||
|
Select From List autocomplete google
|
||||||
|
Submit Form id=search_form
|
||||||
|
Location Should Be http://localhost:11111/
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be autocomplete google
|
||||||
|
|
||||||
|
Change allowed/disabled engines
|
||||||
|
Page Should Contain about
|
||||||
|
Page Should Contain preferences
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
Page Should Contain Engine name
|
||||||
|
Element Should Contain xpath=//label[@class="deny"][@for='engine_dummy_dummy_dummy'] Block
|
||||||
|
Element Should Contain xpath=//label[@class="deny"][@for='engine_general_general_dummy'] Block
|
||||||
|
Click Element xpath=//label[@class="deny"][@for='engine_general_general_dummy']
|
||||||
|
Submit Form id=search_form
|
||||||
|
Location Should Be http://localhost:11111/
|
||||||
|
Page Should Contain about
|
||||||
|
Page Should Contain preferences
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
Page Should Contain Engine name
|
||||||
|
Element Should Contain xpath=//label[@class="deny"][@for='engine_dummy_dummy_dummy'] Block
|
||||||
|
Element Should Contain xpath=//label[@class="deny"][@for='engine_general_general_dummy'] \
|
||||||
|
|
||||||
|
Block a plugin
|
||||||
|
Page Should Contain about
|
||||||
|
Page Should Contain preferences
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be theme default
|
||||||
|
Select From List theme oscar
|
||||||
|
Submit Form id=search_form
|
||||||
|
Location Should Be http://localhost:11111/
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
List Selection Should Be theme oscar
|
||||||
|
Page Should Contain Plugins
|
||||||
|
Click Link Plugins
|
||||||
|
Checkbox Should Not Be Selected id=plugin_HTTPS_rewrite
|
||||||
|
Click Element xpath=//label[@for='plugin_HTTPS_rewrite']
|
||||||
|
Submit Form id=search_form
|
||||||
|
Location Should Be http://localhost:11111/
|
||||||
|
Go To http://localhost:11111/preferences
|
||||||
|
Page Should Contain Plugins
|
||||||
|
Click Link Plugins
|
||||||
|
Checkbox Should Be Selected id=plugin_HTTPS_rewrite
|
||||||
|
|
101
tests/unit/test_preferences.py
Normal file
101
tests/unit/test_preferences.py
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
from searx.preferences import (EnumStringSetting, MapSetting, MissingArgumentException,
|
||||||
|
MultipleChoiceSetting, PluginsSetting, ValidationException)
|
||||||
|
from searx.testing import SearxTestCase
|
||||||
|
|
||||||
|
|
||||||
|
class PluginStub(object):
|
||||||
|
def __init__(self, id, default_on):
|
||||||
|
self.id = id
|
||||||
|
self.default_on = default_on
|
||||||
|
|
||||||
|
|
||||||
|
class TestSettings(SearxTestCase):
|
||||||
|
# map settings
|
||||||
|
def test_map_setting_invalid_initialization(self):
|
||||||
|
with self.assertRaises(MissingArgumentException):
|
||||||
|
setting = MapSetting(3, wrong_argument={'0': 0})
|
||||||
|
|
||||||
|
def test_map_setting_invalid_default_value(self):
|
||||||
|
with self.assertRaises(ValidationException):
|
||||||
|
setting = MapSetting(3, map={'dog': 1, 'bat': 2})
|
||||||
|
|
||||||
|
def test_map_setting_invalid_choice(self):
|
||||||
|
setting = MapSetting(2, map={'dog': 1, 'bat': 2})
|
||||||
|
with self.assertRaises(ValidationException):
|
||||||
|
setting.parse('cat')
|
||||||
|
|
||||||
|
def test_map_setting_valid_default(self):
|
||||||
|
setting = MapSetting(3, map={'dog': 1, 'bat': 2, 'cat': 3})
|
||||||
|
self.assertEquals(setting.get_value(), 3)
|
||||||
|
|
||||||
|
def test_map_setting_valid_choice(self):
|
||||||
|
setting = MapSetting(3, map={'dog': 1, 'bat': 2, 'cat': 3})
|
||||||
|
self.assertEquals(setting.get_value(), 3)
|
||||||
|
setting.parse('bat')
|
||||||
|
self.assertEquals(setting.get_value(), 2)
|
||||||
|
|
||||||
|
def test_enum_setting_invalid_initialization(self):
|
||||||
|
with self.assertRaises(MissingArgumentException):
|
||||||
|
setting = EnumStringSetting('cat', wrong_argument=[0, 1, 2])
|
||||||
|
|
||||||
|
# enum settings
|
||||||
|
def test_enum_setting_invalid_initialization(self):
|
||||||
|
with self.assertRaises(MissingArgumentException):
|
||||||
|
setting = EnumStringSetting('cat', wrong_argument=[0, 1, 2])
|
||||||
|
|
||||||
|
def test_enum_setting_invalid_default_value(self):
|
||||||
|
with self.assertRaises(ValidationException):
|
||||||
|
setting = EnumStringSetting(3, choices=[0, 1, 2])
|
||||||
|
|
||||||
|
def test_enum_setting_invalid_choice(self):
|
||||||
|
setting = EnumStringSetting(0, choices=[0, 1, 2])
|
||||||
|
with self.assertRaises(ValidationException):
|
||||||
|
setting.parse(3)
|
||||||
|
|
||||||
|
def test_enum_setting_valid_default(self):
|
||||||
|
setting = EnumStringSetting(3, choices=[1, 2, 3])
|
||||||
|
self.assertEquals(setting.get_value(), 3)
|
||||||
|
|
||||||
|
def test_enum_setting_valid_choice(self):
|
||||||
|
setting = EnumStringSetting(3, choices=[1, 2, 3])
|
||||||
|
self.assertEquals(setting.get_value(), 3)
|
||||||
|
setting.parse(2)
|
||||||
|
self.assertEquals(setting.get_value(), 2)
|
||||||
|
|
||||||
|
# multiple choice settings
|
||||||
|
def test_multiple_setting_invalid_initialization(self):
|
||||||
|
with self.assertRaises(MissingArgumentException):
|
||||||
|
setting = MultipleChoiceSetting(['2'], wrong_argument=['0', '1', '2'])
|
||||||
|
|
||||||
|
def test_multiple_setting_invalid_default_value(self):
|
||||||
|
with self.assertRaises(ValidationException):
|
||||||
|
setting = MultipleChoiceSetting(['3', '4'], choices=['0', '1', '2'])
|
||||||
|
|
||||||
|
def test_multiple_setting_invalid_choice(self):
|
||||||
|
setting = MultipleChoiceSetting(['1', '2'], choices=['0', '1', '2'])
|
||||||
|
with self.assertRaises(ValidationException):
|
||||||
|
setting.parse('4, 3')
|
||||||
|
|
||||||
|
def test_multiple_setting_valid_default(self):
|
||||||
|
setting = MultipleChoiceSetting(['3'], choices=['1', '2', '3'])
|
||||||
|
self.assertEquals(setting.get_value(), ['3'])
|
||||||
|
|
||||||
|
def test_multiple_setting_valid_choice(self):
|
||||||
|
setting = MultipleChoiceSetting(['3'], choices=['1', '2', '3'])
|
||||||
|
self.assertEquals(setting.get_value(), ['3'])
|
||||||
|
setting.parse('2')
|
||||||
|
self.assertEquals(setting.get_value(), ['2'])
|
||||||
|
|
||||||
|
# plugins settings
|
||||||
|
def test_plugins_setting_all_default_enabled(self):
|
||||||
|
plugin1 = PluginStub('plugin1', True)
|
||||||
|
plugin2 = PluginStub('plugin2', True)
|
||||||
|
setting = PluginsSetting(['3'], choices=[plugin1, plugin2])
|
||||||
|
self.assertEquals(setting.get_enabled(), set(['plugin1', 'plugin2']))
|
||||||
|
|
||||||
|
def test_plugins_setting_few_default_enabled(self):
|
||||||
|
plugin1 = PluginStub('plugin1', True)
|
||||||
|
plugin2 = PluginStub('plugin2', False)
|
||||||
|
plugin3 = PluginStub('plugin3', True)
|
||||||
|
setting = PluginsSetting('name', choices=[plugin1, plugin2, plugin3])
|
||||||
|
self.assertEquals(setting.get_enabled(), set(['plugin1', 'plugin3']))
|
Loading…
Reference in a new issue