mirror of
https://github.com/searxng/searxng.git
synced 2024-11-26 12:51:02 +00:00
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/
|
||||
Page Should Contain rólunk
|
||||
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