diff --git a/.gitignore b/.gitignore index 760b1a8f..d2997164 100644 --- a/.gitignore +++ b/.gitignore @@ -11,18 +11,6 @@ setup.cfg */*.pyc *~ -bin/ -build/ -coverage/ -develop-eggs/ -dist/ -eggs/ -include/ -lib/ -local/ -parts/ -searx.egg-info/ -var/ node_modules/ .tx/ diff --git a/.travis.yml b/.travis.yml index be668351..57d62306 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,16 +11,17 @@ before_install: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" - npm install -g less grunt-cli - - ( cd searx/static/themes/oscar;npm install ) + - ( cd searx/static/themes/oscar;npm install; cd - ) install: - - "make" + - ./manage.sh update_packages + - ./manage.sh update_dev_packages - pip install coveralls script: - - "make flake8" - - "make robot" - - "make styles" - - "make grunt" - - make coverage + - ./manage.sh pep8_check + - ./manage.sh styles + - ./manage.sh grunt + - ./manage.sh coverage + - ./manage.sh robot after_success: coveralls notifications: diff --git a/Makefile b/Makefile deleted file mode 100644 index 5573e544..00000000 --- a/Makefile +++ /dev/null @@ -1,66 +0,0 @@ -# convenience makefile to boostrap & run buildout -# use `make options=-v` to run buildout with extra options - -version = 2.7 -python = bin/python -options = - -all: .installed.cfg - -.installed.cfg: bin/buildout buildout.cfg setup.py - bin/buildout $(options) - -bin/buildout: $(python) buildout.cfg bootstrap.py - $(python) bootstrap.py - @touch $@ - -$(python): - virtualenv -p python$(version) --no-site-packages . - @touch $@ - -robot: .installed.cfg - @bin/robot - -flake8: .installed.cfg - @bin/flake8 setup.py - @bin/flake8 ./searx/ - -tests: .installed.cfg flake8 - @bin/test - @grunt test --gruntfile searx/static/themes/oscar/gruntfile.js - -coverage: .installed.cfg - @bin/coverage run bin/test - @bin/coverage report - @bin/coverage html - -production: bin/buildout production.cfg setup.py - bin/buildout -c production.cfg $(options) - @echo "* Please modify `readlink --canonicalize-missing ./searx/settings.py`" - @echo "* Hint 1: on production, disable debug mode and change secret_key" - @echo "* Hint 2: searx will be executed at server startup by crontab" - @echo "* Hint 3: to run immediatley, execute 'bin/supervisord'" - -minimal: bin/buildout minimal.cfg setup.py - bin/buildout -c minimal.cfg $(options) - -styles: - @lessc -x searx/static/themes/default/less/style.less > searx/static/themes/default/css/style.css - @lessc -x searx/static/themes/default/less/style-rtl.less > searx/static/themes/default/css/style-rtl.css - @lessc -x searx/static/themes/courgette/less/style.less > searx/static/themes/courgette/css/style.css - @lessc -x searx/static/themes/courgette/less/style-rtl.less > searx/static/themes/courgette/css/style-rtl.css - @lessc -x searx/static/less/bootstrap/bootstrap.less > searx/static/css/bootstrap.min.css - @lessc -x searx/static/themes/oscar/less/oscar/oscar.less > searx/static/themes/oscar/css/oscar.min.css - @lessc -x searx/static/themes/pix-art/less/style.less > searx/static/themes/pix-art/css/style.css - -grunt: - @grunt --gruntfile searx/static/themes/oscar/gruntfile.js - -locales: - @pybabel compile -d searx/translations - -clean: - @rm -rf .installed.cfg .mr.developer.cfg bin parts develop-eggs eggs \ - searx.egg-info lib include .coverage coverage - -.PHONY: all tests robot flake8 coverage production minimal styles locales clean diff --git a/base.cfg b/base.cfg deleted file mode 100644 index 6e46e9eb..00000000 --- a/base.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[buildout] -extends = versions.cfg -unzip = true -newest = false -prefer-final = true -develop = . - -eggs = - searx - -parts = - omelette - - -[omelette] -recipe = collective.recipe.omelette -eggs = ${buildout:eggs} diff --git a/bootstrap.py b/bootstrap.py deleted file mode 100644 index a4599211..00000000 --- a/bootstrap.py +++ /dev/null @@ -1,210 +0,0 @@ -############################################################################## -# -# Copyright (c) 2006 Zope Foundation and Contributors. -# All Rights Reserved. -# -# This software is subject to the provisions of the Zope Public License, -# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. -# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED -# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS -# FOR A PARTICULAR PURPOSE. -# -############################################################################## -"""Bootstrap a buildout-based project - -Simply run this script in a directory containing a buildout.cfg. -The script accepts buildout command-line options, so you can -use the -c option to specify an alternate configuration file. -""" - -import os -import shutil -import sys -import tempfile - -from optparse import OptionParser - -__version__ = '2015-07-01' -# See zc.buildout's changelog if this version is up to date. - -tmpeggs = tempfile.mkdtemp(prefix='bootstrap-') - -usage = '''\ -[DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options] - -Bootstraps a buildout-based project. - -Simply run this script in a directory containing a buildout.cfg, using the -Python that you want bin/buildout to use. - -Note that by using --find-links to point to local resources, you can keep -this script from going over the network. -''' - -parser = OptionParser(usage=usage) -parser.add_option("--version", - action="store_true", default=False, - help=("Return bootstrap.py version.")) -parser.add_option("-t", "--accept-buildout-test-releases", - dest='accept_buildout_test_releases', - action="store_true", default=False, - help=("Normally, if you do not specify a --version, the " - "bootstrap script and buildout gets the newest " - "*final* versions of zc.buildout and its recipes and " - "extensions for you. If you use this flag, " - "bootstrap and buildout will get the newest releases " - "even if they are alphas or betas.")) -parser.add_option("-c", "--config-file", - help=("Specify the path to the buildout configuration " - "file to be used.")) -parser.add_option("-f", "--find-links", - help=("Specify a URL to search for buildout releases")) -parser.add_option("--allow-site-packages", - action="store_true", default=False, - help=("Let bootstrap.py use existing site packages")) -parser.add_option("--buildout-version", - help="Use a specific zc.buildout version") -parser.add_option("--setuptools-version", - help="Use a specific setuptools version") -parser.add_option("--setuptools-to-dir", - help=("Allow for re-use of existing directory of " - "setuptools versions")) - -options, args = parser.parse_args() -if options.version: - print("bootstrap.py version %s" % __version__) - sys.exit(0) - - -###################################################################### -# load/install setuptools - -try: - from urllib.request import urlopen -except ImportError: - from urllib2 import urlopen - -ez = {} -if os.path.exists('ez_setup.py'): - exec(open('ez_setup.py').read(), ez) -else: - exec(urlopen('https://bootstrap.pypa.io/ez_setup.py').read(), ez) - -if not options.allow_site_packages: - # ez_setup imports site, which adds site packages - # this will remove them from the path to ensure that incompatible versions - # of setuptools are not in the path - import site - # inside a virtualenv, there is no 'getsitepackages'. - # We can't remove these reliably - if hasattr(site, 'getsitepackages'): - for sitepackage_path in site.getsitepackages(): - # Strip all site-packages directories from sys.path that - # are not sys.prefix; this is because on Windows - # sys.prefix is a site-package directory. - if sitepackage_path != sys.prefix: - sys.path[:] = [x for x in sys.path - if sitepackage_path not in x] - -setup_args = dict(to_dir=tmpeggs, download_delay=0) - -if options.setuptools_version is not None: - setup_args['version'] = options.setuptools_version -if options.setuptools_to_dir is not None: - setup_args['to_dir'] = options.setuptools_to_dir - -ez['use_setuptools'](**setup_args) -import setuptools -import pkg_resources - -# This does not (always?) update the default working set. We will -# do it. -for path in sys.path: - if path not in pkg_resources.working_set.entries: - pkg_resources.working_set.add_entry(path) - -###################################################################### -# Install buildout - -ws = pkg_resources.working_set - -setuptools_path = ws.find( - pkg_resources.Requirement.parse('setuptools')).location - -# Fix sys.path here as easy_install.pth added before PYTHONPATH -cmd = [sys.executable, '-c', - 'import sys; sys.path[0:0] = [%r]; ' % setuptools_path + - 'from setuptools.command.easy_install import main; main()', - '-mZqNxd', tmpeggs] - -find_links = os.environ.get( - 'bootstrap-testing-find-links', - options.find_links or - ('http://downloads.buildout.org/' - if options.accept_buildout_test_releases else None) - ) -if find_links: - cmd.extend(['-f', find_links]) - -requirement = 'zc.buildout' -version = options.buildout_version -if version is None and not options.accept_buildout_test_releases: - # Figure out the most recent final version of zc.buildout. - import setuptools.package_index - _final_parts = '*final-', '*final' - - def _final_version(parsed_version): - try: - return not parsed_version.is_prerelease - except AttributeError: - # Older setuptools - for part in parsed_version: - if (part[:1] == '*') and (part not in _final_parts): - return False - return True - - index = setuptools.package_index.PackageIndex( - search_path=[setuptools_path]) - if find_links: - index.add_find_links((find_links,)) - req = pkg_resources.Requirement.parse(requirement) - if index.obtain(req) is not None: - best = [] - bestv = None - for dist in index[req.project_name]: - distv = dist.parsed_version - if _final_version(distv): - if bestv is None or distv > bestv: - best = [dist] - bestv = distv - elif distv == bestv: - best.append(dist) - if best: - best.sort() - version = best[-1].version -if version: - requirement = '=='.join((requirement, version)) -cmd.append(requirement) - -import subprocess -if subprocess.call(cmd) != 0: - raise Exception( - "Failed to execute command:\n%s" % repr(cmd)[1:-1]) - -###################################################################### -# Import and run buildout - -ws.add_entry(tmpeggs) -ws.require(requirement) -import zc.buildout.buildout - -if not [a for a in args if '=' not in a]: - args.append('bootstrap') - -# if -c was provided, we push it back into args for buildout' main function -if options.config_file is not None: - args[0:0] = ['-c', options.config_file] - -zc.buildout.buildout.main(args) -shutil.rmtree(tmpeggs) diff --git a/buildout.cfg b/buildout.cfg deleted file mode 100644 index b9e6d24e..00000000 --- a/buildout.cfg +++ /dev/null @@ -1,30 +0,0 @@ -[buildout] -extends = base.cfg -develop = . - -eggs = - searx [test] - -parts += - pyscripts - robot - test - - -[pyscripts] -recipe = zc.recipe.egg:script -eggs = ${buildout:eggs} -interpreter = py -dependent-scripts = true - - -[robot] -recipe = zc.recipe.testrunner -eggs = ${buildout:eggs} -defaults = ['--color', '--auto-progress', '--layer', 'SearxRobotLayer'] - - -[test] -recipe = zc.recipe.testrunner -eggs = ${buildout:eggs} -defaults = ['--color', '--auto-progress', '--layer', 'SearxTestLayer', '--layer', '!SearxRobotLayer'] diff --git a/manage.sh b/manage.sh new file mode 100755 index 00000000..39a8e27d --- /dev/null +++ b/manage.sh @@ -0,0 +1,70 @@ +#!/bin/sh + +BASE_DIR=$(dirname `readlink -f $0`) +PYTHONPATH=$BASE_DIR +SEARX_DIR="$BASE_DIR/searx" +ACTION=$1 + +update_packages() { + pip install --upgrade -r "$BASE_DIR/requirements.txt" +} + +update_dev_packages() { + pip install --upgrade -r "$BASE_DIR/requirements-dev.txt" +} + +pep8_check() { + echo '[!] Running pep8 check' + pep8 "$SEARX_DIR" "$BASE_DIR/tests" +} + +unit_tests() { + echo '[!] Running unit tests' + python -m nose2 -s "$BASE_DIR/tests/unit" +} + +py_test_coverage() { + echo '[!] Running python test coverage' + PYTHONPATH=`pwd` python -m nose2 -C --coverage "$SEARX_DIR" -s "$BASE_DIR/tests/unit" + coverage report + coverage html +} + +robot_tests() { + echo '[!] Running robot tests' + python -c "import zope.testrunner; import sys; sys.exit(zope.testrunner.run("\ +"['--color', '--auto-progress', '--layer', 'SearxRobotLayer', '--test-path', '$BASE_DIR']))" +} + +tests() { + set -e + pep8_check + unit_tests + robot_tests + set +e +} + +build_style() { + lessc -x "$BASE_DIR/searx/static/$1" "$BASE_DIR/searx/static/$2" +} + +styles() { + echo '[!] Building styles' + build_style themes/default/less/style.less themes/default/css/style.css + build_style themes/default/less/style-rtl.less themes/default/css/style-rtl.css + build_style themes/courgette/less/style.less themes/courgette/css/style.css + build_style themes/courgette/less/style-rtl.less themes/courgette/css/style-rtl.css + build_style less/bootstrap/bootstrap.less css/bootstrap.min.css + build_style themes/oscar/less/oscar/oscar.less themes/oscar/css/oscar.min.css + build_style themes/pix-art/less/style.less themes/pix-art/css/style.css +} + +grunt() { + grunt --gruntfile "$SEARX_DIR/static/themes/oscar/gruntfile.js" +} + +locales() { + pybabel compile -d "$SEARX_DIR/translations" +} + +$ACTION diff --git a/minimal.cfg b/minimal.cfg deleted file mode 100644 index 339a2939..00000000 --- a/minimal.cfg +++ /dev/null @@ -1,15 +0,0 @@ -[buildout] -extends = base.cfg -develop = . - -eggs = - searx - -parts += - pyscripts - - -[pyscripts] -recipe = zc.recipe.egg:script -eggs = ${buildout:eggs} -interpreter = py diff --git a/production.cfg b/production.cfg deleted file mode 100644 index ea40682d..00000000 --- a/production.cfg +++ /dev/null @@ -1,34 +0,0 @@ -[buildout] -extends = base.cfg -develop = . - -eggs = - searx - -parts += - pyscripts - supervisor - crontab_reboot - - -[pyscripts] -recipe = zc.recipe.egg:script -eggs = ${buildout:eggs} -interpreter = py - - -[supervisor] -recipe = collective.recipe.supervisor -http-socket = unix -user = searxer -password = ohpleasedochangeme -file = /tmp/supervisor.sock -chmod = 0700 -programs = - 50 searx ${buildout:bin-directory}/searx-run - - -[crontab_reboot] -recipe = z3c.recipe.usercrontab -times = @reboot -command = ${buildout:bin-directory}/supervisord diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 00000000..d8c2395d --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,9 @@ +flake8==2.5.1 +mock==1.0.1 +nose2==0.4.7 +nose2[coverage-plugin] +plone.testing==4.0.15 +robotframework-selenium2library==1.7.4 +robotsuite==1.7.0 +unittest2==1.1.0 +zope.testrunner==4.4.10 diff --git a/searx/tests/test_engines.py b/searx/tests/test_engines.py deleted file mode 100644 index 793b7746..00000000 --- a/searx/tests/test_engines.py +++ /dev/null @@ -1,45 +0,0 @@ -from searx.tests.engines.test_bing import * # noqa -from searx.tests.engines.test_bing_images import * # noqa -from searx.tests.engines.test_bing_news import * # noqa -from searx.tests.engines.test_blekko_images import * # noqa -from searx.tests.engines.test_btdigg import * # noqa -from searx.tests.engines.test_currency_convert import * # noqa -from searx.tests.engines.test_dailymotion import * # noqa -from searx.tests.engines.test_deezer import * # noqa -from searx.tests.engines.test_deviantart import * # noqa -from searx.tests.engines.test_digg import * # noqa -from searx.tests.engines.test_duckduckgo import * # noqa -from searx.tests.engines.test_duckduckgo_definitions import * # noqa -from searx.tests.engines.test_dummy import * # noqa -from searx.tests.engines.test_faroo import * # noqa -from searx.tests.engines.test_flickr import * # noqa -from searx.tests.engines.test_flickr_noapi import * # noqa -from searx.tests.engines.test_gigablast import * # noqa -from searx.tests.engines.test_github import * # noqa -from searx.tests.engines.test_google import * # noqa -from searx.tests.engines.test_google_images import * # noqa -from searx.tests.engines.test_google_news import * # noqa -from searx.tests.engines.test_kickass import * # noqa -from searx.tests.engines.test_mediawiki import * # noqa -from searx.tests.engines.test_mixcloud import * # noqa -from searx.tests.engines.test_openstreetmap import * # noqa -from searx.tests.engines.test_photon import * # noqa -from searx.tests.engines.test_piratebay import * # noqa -from searx.tests.engines.test_qwant import * # noqa -from searx.tests.engines.test_searchcode_code import * # noqa -from searx.tests.engines.test_searchcode_doc import * # noqa -from searx.tests.engines.test_soundcloud import * # noqa -from searx.tests.engines.test_spotify import * # noqa -from searx.tests.engines.test_stackoverflow import * # noqa -from searx.tests.engines.test_startpage import * # noqa -from searx.tests.engines.test_subtitleseeker import * # noqa -from searx.tests.engines.test_swisscows import * # noqa -from searx.tests.engines.test_twitter import * # noqa -from searx.tests.engines.test_vimeo import * # noqa -from searx.tests.engines.test_www1x import * # noqa -from searx.tests.engines.test_www500px import * # noqa -from searx.tests.engines.test_yacy import * # noqa -from searx.tests.engines.test_yahoo import * # noqa -from searx.tests.engines.test_youtube_api import * # noqa -from searx.tests.engines.test_youtube_noapi import * # noqa -from searx.tests.engines.test_yahoo_news import * # noqa diff --git a/searx/tests/__init__.py b/tests/__init__.py similarity index 100% rename from searx/tests/__init__.py rename to tests/__init__.py diff --git a/searx/tests/engines/__init__.py b/tests/robot/__init__.py similarity index 100% rename from searx/tests/engines/__init__.py rename to tests/robot/__init__.py diff --git a/searx/tests/robot/test_basic.robot b/tests/robot/test_basic.robot similarity index 100% rename from searx/tests/robot/test_basic.robot rename to tests/robot/test_basic.robot diff --git a/searx/tests/test_robot.py b/tests/test_robot.py similarity index 100% rename from searx/tests/test_robot.py rename to tests/test_robot.py diff --git a/searx/tests/robot/__init__.py b/tests/unit/__init__.py similarity index 100% rename from searx/tests/robot/__init__.py rename to tests/unit/__init__.py diff --git a/tests/unit/engines/__init__.py b/tests/unit/engines/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/searx/tests/engines/test_bing.py b/tests/unit/engines/test_bing.py similarity index 100% rename from searx/tests/engines/test_bing.py rename to tests/unit/engines/test_bing.py diff --git a/searx/tests/engines/test_bing_images.py b/tests/unit/engines/test_bing_images.py similarity index 100% rename from searx/tests/engines/test_bing_images.py rename to tests/unit/engines/test_bing_images.py diff --git a/searx/tests/engines/test_bing_news.py b/tests/unit/engines/test_bing_news.py similarity index 100% rename from searx/tests/engines/test_bing_news.py rename to tests/unit/engines/test_bing_news.py diff --git a/searx/tests/engines/test_blekko_images.py b/tests/unit/engines/test_blekko_images.py similarity index 100% rename from searx/tests/engines/test_blekko_images.py rename to tests/unit/engines/test_blekko_images.py diff --git a/searx/tests/engines/test_btdigg.py b/tests/unit/engines/test_btdigg.py similarity index 100% rename from searx/tests/engines/test_btdigg.py rename to tests/unit/engines/test_btdigg.py diff --git a/searx/tests/engines/test_currency_convert.py b/tests/unit/engines/test_currency_convert.py similarity index 100% rename from searx/tests/engines/test_currency_convert.py rename to tests/unit/engines/test_currency_convert.py diff --git a/searx/tests/engines/test_dailymotion.py b/tests/unit/engines/test_dailymotion.py similarity index 100% rename from searx/tests/engines/test_dailymotion.py rename to tests/unit/engines/test_dailymotion.py diff --git a/searx/tests/engines/test_deezer.py b/tests/unit/engines/test_deezer.py similarity index 100% rename from searx/tests/engines/test_deezer.py rename to tests/unit/engines/test_deezer.py diff --git a/searx/tests/engines/test_deviantart.py b/tests/unit/engines/test_deviantart.py similarity index 100% rename from searx/tests/engines/test_deviantart.py rename to tests/unit/engines/test_deviantart.py diff --git a/searx/tests/engines/test_digg.py b/tests/unit/engines/test_digg.py similarity index 100% rename from searx/tests/engines/test_digg.py rename to tests/unit/engines/test_digg.py diff --git a/searx/tests/engines/test_duckduckgo.py b/tests/unit/engines/test_duckduckgo.py similarity index 100% rename from searx/tests/engines/test_duckduckgo.py rename to tests/unit/engines/test_duckduckgo.py diff --git a/searx/tests/engines/test_duckduckgo_definitions.py b/tests/unit/engines/test_duckduckgo_definitions.py similarity index 100% rename from searx/tests/engines/test_duckduckgo_definitions.py rename to tests/unit/engines/test_duckduckgo_definitions.py diff --git a/searx/tests/engines/test_dummy.py b/tests/unit/engines/test_dummy.py similarity index 100% rename from searx/tests/engines/test_dummy.py rename to tests/unit/engines/test_dummy.py diff --git a/searx/tests/engines/test_faroo.py b/tests/unit/engines/test_faroo.py similarity index 100% rename from searx/tests/engines/test_faroo.py rename to tests/unit/engines/test_faroo.py diff --git a/searx/tests/engines/test_flickr.py b/tests/unit/engines/test_flickr.py similarity index 100% rename from searx/tests/engines/test_flickr.py rename to tests/unit/engines/test_flickr.py diff --git a/searx/tests/engines/test_flickr_noapi.py b/tests/unit/engines/test_flickr_noapi.py similarity index 100% rename from searx/tests/engines/test_flickr_noapi.py rename to tests/unit/engines/test_flickr_noapi.py diff --git a/searx/tests/engines/test_gigablast.py b/tests/unit/engines/test_gigablast.py similarity index 100% rename from searx/tests/engines/test_gigablast.py rename to tests/unit/engines/test_gigablast.py diff --git a/searx/tests/engines/test_github.py b/tests/unit/engines/test_github.py similarity index 100% rename from searx/tests/engines/test_github.py rename to tests/unit/engines/test_github.py diff --git a/searx/tests/engines/test_google.py b/tests/unit/engines/test_google.py similarity index 100% rename from searx/tests/engines/test_google.py rename to tests/unit/engines/test_google.py diff --git a/searx/tests/engines/test_google_images.py b/tests/unit/engines/test_google_images.py similarity index 100% rename from searx/tests/engines/test_google_images.py rename to tests/unit/engines/test_google_images.py diff --git a/searx/tests/engines/test_google_news.py b/tests/unit/engines/test_google_news.py similarity index 100% rename from searx/tests/engines/test_google_news.py rename to tests/unit/engines/test_google_news.py diff --git a/searx/tests/engines/test_kickass.py b/tests/unit/engines/test_kickass.py similarity index 100% rename from searx/tests/engines/test_kickass.py rename to tests/unit/engines/test_kickass.py diff --git a/searx/tests/engines/test_mediawiki.py b/tests/unit/engines/test_mediawiki.py similarity index 100% rename from searx/tests/engines/test_mediawiki.py rename to tests/unit/engines/test_mediawiki.py diff --git a/searx/tests/engines/test_mixcloud.py b/tests/unit/engines/test_mixcloud.py similarity index 100% rename from searx/tests/engines/test_mixcloud.py rename to tests/unit/engines/test_mixcloud.py diff --git a/searx/tests/engines/test_openstreetmap.py b/tests/unit/engines/test_openstreetmap.py similarity index 100% rename from searx/tests/engines/test_openstreetmap.py rename to tests/unit/engines/test_openstreetmap.py diff --git a/searx/tests/engines/test_photon.py b/tests/unit/engines/test_photon.py similarity index 100% rename from searx/tests/engines/test_photon.py rename to tests/unit/engines/test_photon.py diff --git a/searx/tests/engines/test_piratebay.py b/tests/unit/engines/test_piratebay.py similarity index 100% rename from searx/tests/engines/test_piratebay.py rename to tests/unit/engines/test_piratebay.py diff --git a/searx/tests/engines/test_qwant.py b/tests/unit/engines/test_qwant.py similarity index 100% rename from searx/tests/engines/test_qwant.py rename to tests/unit/engines/test_qwant.py diff --git a/searx/tests/engines/test_searchcode_code.py b/tests/unit/engines/test_searchcode_code.py similarity index 100% rename from searx/tests/engines/test_searchcode_code.py rename to tests/unit/engines/test_searchcode_code.py diff --git a/searx/tests/engines/test_searchcode_doc.py b/tests/unit/engines/test_searchcode_doc.py similarity index 100% rename from searx/tests/engines/test_searchcode_doc.py rename to tests/unit/engines/test_searchcode_doc.py diff --git a/searx/tests/engines/test_soundcloud.py b/tests/unit/engines/test_soundcloud.py similarity index 100% rename from searx/tests/engines/test_soundcloud.py rename to tests/unit/engines/test_soundcloud.py diff --git a/searx/tests/engines/test_spotify.py b/tests/unit/engines/test_spotify.py similarity index 100% rename from searx/tests/engines/test_spotify.py rename to tests/unit/engines/test_spotify.py diff --git a/searx/tests/engines/test_stackoverflow.py b/tests/unit/engines/test_stackoverflow.py similarity index 100% rename from searx/tests/engines/test_stackoverflow.py rename to tests/unit/engines/test_stackoverflow.py diff --git a/searx/tests/engines/test_startpage.py b/tests/unit/engines/test_startpage.py similarity index 100% rename from searx/tests/engines/test_startpage.py rename to tests/unit/engines/test_startpage.py diff --git a/searx/tests/engines/test_subtitleseeker.py b/tests/unit/engines/test_subtitleseeker.py similarity index 100% rename from searx/tests/engines/test_subtitleseeker.py rename to tests/unit/engines/test_subtitleseeker.py diff --git a/searx/tests/engines/test_swisscows.py b/tests/unit/engines/test_swisscows.py similarity index 100% rename from searx/tests/engines/test_swisscows.py rename to tests/unit/engines/test_swisscows.py diff --git a/searx/tests/engines/test_twitter.py b/tests/unit/engines/test_twitter.py similarity index 100% rename from searx/tests/engines/test_twitter.py rename to tests/unit/engines/test_twitter.py diff --git a/searx/tests/engines/test_vimeo.py b/tests/unit/engines/test_vimeo.py similarity index 100% rename from searx/tests/engines/test_vimeo.py rename to tests/unit/engines/test_vimeo.py diff --git a/searx/tests/engines/test_www1x.py b/tests/unit/engines/test_www1x.py similarity index 100% rename from searx/tests/engines/test_www1x.py rename to tests/unit/engines/test_www1x.py diff --git a/searx/tests/engines/test_www500px.py b/tests/unit/engines/test_www500px.py similarity index 100% rename from searx/tests/engines/test_www500px.py rename to tests/unit/engines/test_www500px.py diff --git a/searx/tests/engines/test_yacy.py b/tests/unit/engines/test_yacy.py similarity index 100% rename from searx/tests/engines/test_yacy.py rename to tests/unit/engines/test_yacy.py diff --git a/searx/tests/engines/test_yahoo.py b/tests/unit/engines/test_yahoo.py similarity index 100% rename from searx/tests/engines/test_yahoo.py rename to tests/unit/engines/test_yahoo.py diff --git a/searx/tests/engines/test_yahoo_news.py b/tests/unit/engines/test_yahoo_news.py similarity index 100% rename from searx/tests/engines/test_yahoo_news.py rename to tests/unit/engines/test_yahoo_news.py diff --git a/searx/tests/engines/test_youtube_api.py b/tests/unit/engines/test_youtube_api.py similarity index 100% rename from searx/tests/engines/test_youtube_api.py rename to tests/unit/engines/test_youtube_api.py diff --git a/searx/tests/engines/test_youtube_noapi.py b/tests/unit/engines/test_youtube_noapi.py similarity index 100% rename from searx/tests/engines/test_youtube_noapi.py rename to tests/unit/engines/test_youtube_noapi.py diff --git a/searx/tests/test_plugins.py b/tests/unit/test_plugins.py similarity index 100% rename from searx/tests/test_plugins.py rename to tests/unit/test_plugins.py diff --git a/searx/tests/test_results.py b/tests/unit/test_results.py similarity index 100% rename from searx/tests/test_results.py rename to tests/unit/test_results.py diff --git a/searx/tests/test_search.py b/tests/unit/test_search.py similarity index 100% rename from searx/tests/test_search.py rename to tests/unit/test_search.py diff --git a/searx/tests/test_utils.py b/tests/unit/test_utils.py similarity index 100% rename from searx/tests/test_utils.py rename to tests/unit/test_utils.py diff --git a/searx/tests/test_webapp.py b/tests/unit/test_webapp.py similarity index 100% rename from searx/tests/test_webapp.py rename to tests/unit/test_webapp.py diff --git a/versions.cfg b/versions.cfg deleted file mode 100644 index 2cb86aba..00000000 --- a/versions.cfg +++ /dev/null @@ -1,122 +0,0 @@ -[versions] -Babel = 1.3 -Flask = 0.10.1 -Flask-Babel = 0.9 -Jinja2 = 2.7.3 -MarkupSafe = 0.23 -Pygments = 2.0.2 -WebOb = 1.4.1 -WebTest = 2.0.18 -Werkzeug = 0.10.4 -collective.recipe.omelette = 0.16 -coverage = 3.7.1 -decorator = 3.4.2 -docutils = 0.12 -flake8 = 2.4.1 -itsdangerous = 0.24 -mccabe = 0.3.1 -mock = 1.0.1 -pep8 = 1.5.7 -plone.testing = 4.0.13 -pyflakes = 0.8.1 -pytz = 2015.4 -pyyaml = 3.11 -requests = 2.7.0 -robotframework-debuglibrary = 0.3 -robotframework-httplibrary = 0.4.2 -robotframework-selenium2library = 1.7.1 -robotsuite = 1.6.1 -selenium = 2.46.0 -speaklater = 1.3 -unittest2 = 1.0.1 -waitress = 0.8.9 -zc.recipe.testrunner = 2.0.0 -pyopenssl = 0.15.1 -ndg-httpsclient = 0.4.0 -pyasn1 = 0.1.8 -pyasn1-modules = 0.0.6 -certifi = 2015.11.20.1 - -cffi = 1.1.2 -cryptography = 0.9.1 - -# Required by: -# robotsuite==1.6.1 -# searx==0.7.0 -lxml = 3.4.4 - -# Required by: -# searx==0.7.0 -python-dateutil = 2.4.2 - -# Required by: -# searx==0.7.0 -# zope.exceptions==4.0.7 -# zope.interface==4.1.2 -# zope.testrunner==4.4.9 -setuptools = 18.0.1 - -# Required by: -# WebTest==2.0.18 -beautifulsoup4 = 4.3.2 - -# Required by: -# cryptography==0.9.1 -enum34 = 1.0.4 - -# Required by: -# cryptography==0.9.1 -idna = 2.0 - -# Required by: -# cryptography==0.9.1 -ipaddress = 1.0.7 - -# Required by: -# robotframework-httplibrary==0.4.2 -jsonpatch = 1.11 - -# Required by: -# robotframework-httplibrary==0.4.2 -jsonpointer = 1.9 - -# Required by: -# traceback2==1.4.0 -linecache2 = 1.0.0 - -# Required by: -# cffi==1.1.2 -pycparser = 2.12 - -# Required by: -# robotframework-httplibrary==0.4.2 -robotframework = 2.8.7 - -# Required by: -# robotsuite==1.6.1 -# zope.testrunner==4.4.9 -six = 1.9.0 - -# Required by: -# unittest2==1.0.1 -traceback2 = 1.4.0 - -# Required by: -# collective.recipe.omelette==0.16 -zc.recipe.egg = 2.0.1 - -# Required by: -# zope.testrunner==4.4.9 -zope.exceptions = 4.0.7 - -# Required by: -# zope.testrunner==4.4.9 -zope.interface = 4.1.2 - -# Required by: -# plone.testing==4.0.13 -zope.testing = 4.2.0 - -# Required by: -# zc.recipe.testrunner==2.0.0 -zope.testrunner = 4.4.9