diff options
| author | Alexandre Flament <alex@al-f.net> | 2021-09-02 16:01:34 +0200 |
|---|---|---|
| committer | Alexandre Flament <alex@al-f.net> | 2021-09-02 16:01:34 +0200 |
| commit | b9c73fb69784726608d1a2d72b7a17f777d30b9d (patch) | |
| tree | e1446c28afb7c49328ae7f9279b11c072c5b52c6 /searx | |
| parent | 065b4dab56bf3c374cab7896314168e9d3106171 (diff) | |
[mod] move searx/testing.py to the tests directory
move robot tests to tests.robot
manage calls "python -m tests.robot"
Diffstat (limited to 'searx')
| -rw-r--r-- | searx/settings_robot.yml | 62 | ||||
| -rw-r--r-- | searx/testing.py | 120 |
2 files changed, 0 insertions, 182 deletions
diff --git a/searx/settings_robot.yml b/searx/settings_robot.yml deleted file mode 100644 index ca65449f7..000000000 --- a/searx/settings_robot.yml +++ /dev/null @@ -1,62 +0,0 @@ -general: - debug: false - instance_name: "searx_test" - -brand: - git_url: https://github.com/searxng/searxng - git_branch: master - issue_url: https://github.com/searxng/searxng/issues - new_issue_url: https://github.com/searxng/searxng/issues/new - docs_url: https://searxng.github.io/searxng - public_instances: https://searx.space - wiki_url: https://github.com/searxng/searxng/wiki - -search: - language: "all" - -server: - port: 11111 - bind_address: 127.0.0.1 - secret_key: "changedultrasecretkey" - base_url: false - http_protocol_version: "1.0" - -ui: - static_path: "" - templates_path: "" - default_theme: oscar - -preferences: - lock: [] - -outgoing: - request_timeout: 1.0 # seconds - useragent_suffix: "" - -engines: - - name: general dummy - engine: dummy - categories: general - shortcut: gd - - - name: dummy dummy - engine: dummy - categories: dummy - shortcut: dd - -locales: - en: English - hu: Magyar - -doi_resolvers: - oadoi.org: 'https://oadoi.org/' - doi.org: 'https://doi.org/' - doai.io: 'https://dissem.in/' - sci-hub.se: 'https://sci-hub.se/' - sci-hub.do: 'https://sci-hub.do/' - scihubtw.tw: 'https://scihubtw.tw/' - sci-hub.st: 'https://sci-hub.st/' - sci-hub.bar: 'https://sci-hub.bar/' - sci-hub.it.nf: 'https://sci-hub.it.nf/' - -default_doi_resolver: 'oadoi.org' diff --git a/searx/testing.py b/searx/testing.py deleted file mode 100644 index b31ba8997..000000000 --- a/searx/testing.py +++ /dev/null @@ -1,120 +0,0 @@ -# -*- coding: utf-8 -*- -# SPDX-License-Identifier: AGPL-3.0-or-later -# lint: pylint -"""Shared testing code.""" - -# pylint: disable=missing-function-docstring - -import os -import subprocess -import traceback - -from os.path import dirname, join, abspath, realpath - -from splinter import Browser -import aiounittest - - -class SearxTestLayer: - """Base layer for non-robot tests.""" - - __name__ = 'SearxTestLayer' - - @classmethod - def setUp(cls): - pass - - @classmethod - def tearDown(cls): - pass - - @classmethod - def testSetUp(cls): - pass - - @classmethod - def testTearDown(cls): - pass - - -class SearxRobotLayer(): - """Searx Robot Test Layer""" - - def setUp(self): - os.setpgrp() # create new process group, become its leader - - # get program paths - webapp = join(abspath(dirname(realpath(__file__))), 'webapp.py') - exe = 'python' - - # The Flask app is started by Flask.run(...), don't enable Flask's debug - # mode, the debugger from Flask will cause wired process model, where - # the server never dies. Further read: - # - # - debug mode: https://flask.palletsprojects.com/quickstart/#debug-mode - # - Flask.run(..): https://flask.palletsprojects.com/api/#flask.Flask.run - - os.environ['SEARX_DEBUG'] = '0' - - # set robot settings path - os.environ['SEARX_SETTINGS_PATH'] = abspath( - dirname(__file__) + '/settings_robot.yml') - - # run the server - self.server = subprocess.Popen( # pylint: disable=consider-using-with - [exe, webapp], - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT - ) - if hasattr(self.server.stdout, 'read1'): - print(self.server.stdout.read1(1024).decode()) - - def tearDown(self): - os.kill(self.server.pid, 9) - # remove previously set environment variable - del os.environ['SEARX_SETTINGS_PATH'] - - -# SEARXROBOTLAYER = SearxRobotLayer() -def run_robot_tests(tests): - print('Running {0} tests'.format(len(tests))) - for test in tests: - with Browser('firefox', headless=True, profile_preferences={'intl.accept_languages': 'en'}) as browser: - test(browser) - - -class SearxTestCase(aiounittest.AsyncTestCase): - """Base test case for non-robot tests.""" - - layer = SearxTestLayer - - def setattr4test(self, obj, attr, value): - """ - setattr(obj, attr, value) - but reset to the previous value in the cleanup. - """ - previous_value = getattr(obj, attr) - - def cleanup_patch(): - setattr(obj, attr, previous_value) - self.addCleanup(cleanup_patch) - setattr(obj, attr, value) - - -if __name__ == '__main__': - import sys - # test cases - from tests import robot - - base_dir = abspath(join(dirname(__file__), '../tests')) - if sys.argv[1] == 'robot': - test_layer = SearxRobotLayer() - errors = False - try: - test_layer.setUp() - run_robot_tests([getattr(robot, x) for x in dir(robot) if x.startswith('test_')]) - except Exception: # pylint: disable=broad-except - errors = True - print('Error occured: {0}'.format(traceback.format_exc())) - test_layer.tearDown() - sys.exit(1 if errors else 0) |