Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5fac5628 authored by Nivesh Krishna's avatar Nivesh Krishna
Browse files

add tests for calculator plugin

parent 3c6b3f77
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -47,10 +47,10 @@ def post_search(request, search):
        if type(value) in (int, float):
            search.result_container.answers.clear()
            answer = "{} = {}".format(unmodified_query, value)
            search.result_container.answers[answer] = {'answer': answer, 'calculator': True}
            search.result_container.answers['calculator'] = {'answer': answer, 'calculator': True}
    except (ZeroDivisionError, ValueError, FloatingPointError, MemoryError, OverflowError, TimeoutError) as e:
        answer = gettext('Error')
        search.result_container.answers[answer] = {'answer': answer, 'calculator': True}
        search.result_container.answers['calculator'] = {'answer': answer, 'calculator': True}
    except Exception as e:
        logger.debug(e)

+48 −0
Original line number Diff line number Diff line
@@ -137,3 +137,51 @@ class HashPluginTest(SearxTestCase):
        self.assertTrue('sha512 hash digest: ee26b0dd4af7e749aa1a8ee3c10ae9923f6'
                        '18980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5'
                        'fa9ad8e6f57f50028a8ff' in search.result_container.answers['hash']['answer'])


class CalculatorPluginTest(SearxTestCase):

    def test_PluginStore_init(self):
        store = plugins.PluginStore()
        store.register(plugins.calculator)

        self.assertTrue(len(store.plugins) == 1)

        request = Mock(remote_addr='127.0.0.1')
        request.headers.getlist.return_value = []

        # True addition test
        search = get_search_mock(query='2+2', pageno=1)
        store.call(store.plugins, 'post_search', request, search)
        self.assertTrue('4'
                        in search.result_container.answers['calculator']['answer'])

        # False addition test
        search = get_search_mock(query='2+2', pageno=1)
        store.call(store.plugins, 'post_search', request, search)
        self.assertFalse('4' not 
                        in search.result_container.answers['calculator']['answer'])

        # no result test
        search = get_search_mock(query='2+2', pageno=2)
        store.call(store.plugins, 'post_search', request, search)
        self.assertFalse('calculator' 
                        in search.result_container.answers)

        # no result test
        search = get_search_mock(query='2+2/sdf', pageno=1)
        store.call(store.plugins, 'post_search', request, search)
        self.assertFalse('calculator' 
                        in search.result_container.answers)

        # error result test
        search = get_search_mock(query='2+2/0', pageno=1)
        store.call(store.plugins, 'post_search', request, search)
        self.assertTrue('Error' 
                        in search.result_container.answers['calculator']['answer'])

        # error result test
        search = get_search_mock(query='2**999999999**99999999', pageno=1)
        store.call(store.plugins, 'post_search', request, search)
        self.assertTrue('Error' 
                        in search.result_container.answers['calculator']['answer'])
 No newline at end of file