Skip to main content

Schul-Cloud Search API

Project description

Build Status Python Package Index Dockerhub Automated Build Status First Timers

These are the tests for the Schul-Cloud search API. You can read motivation blog post about

  • common tests for all search engines

  • testing during live deployment

Installation

You can install the tests by installing Python version 3 and pip. Then, you run the installation from the command line:

pip install --user schul-cloud-search-tests

Installation for Development

If you would like to contribute code to this repository, you can clone it first.

git clone https://github.com/schul-cloud/schul_cloud_search_tests.git
cd schul_cloud_search_tests

Install the required packages for Python:

pip3 install --user -r requirements.txt pip-tools==1.6.5

Note that if you would like to change the requirements, please edit the requirements.in file and run this command to update the dependencies:

pip-compile --output-file requirements.txt requirements.in

Specification

The idea is that these tests run in between your search client and your search engine or search adapter. You use the test interface instead of your search engine interface to run checks on every request the client makes:

  • Is the client request formulated correctly?

  • Is the server response folmulated correctly?

These cases can be defined and are defined:

  • When the client issues a successful request and the server responds correctly, the request is forwarded, optionally including a note that the tests passed.

  • When the client issues a malformed request, HTTP error 555 is returned including the information which tests did not pass. The request is not forwarded to the server. To verify this, the client request is included in the reponse.

  • When the client issues a correct request, and the server response is malformed, then HTTP error 556 is returned including a list of error descriptions of the mistakes made by the server. To verify this, also the server response is included in the errors.

Usage

Suppose you have a server running on http://localhost:1234/v1/search/. You can tun the search engine tests as a proxy on port 8080 like this:

python3 -m schul_cloud_search_tests.proxy 8080 /endpoint/ http://localhost:1234/v1/search/

Now, all your requests to http://localhost:8080/endpoint/ will be forwarded to http://localhost:1234/v1/search/.

When you are done, you can visit http://localhost:8080/stop to stop the server or run this command:

python3 -m schul_cloud_search_tests.stop 8080

The return code is zero (success) if all tests of all requests passed. If one test fails, it is a number greater than zero.

Further Reading


You can edit this document on Github and check it with this editor.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

schul_cloud_search_tests-1.0.13.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

schul_cloud_search_tests-1.0.13-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file schul_cloud_search_tests-1.0.13.tar.gz.

File metadata

File hashes

Hashes for schul_cloud_search_tests-1.0.13.tar.gz
Algorithm Hash digest
SHA256 15010a5ea89b5e3cc5cdb304fecd2e9f7dad8e75958aa679e9fa34d1e013fbd5
MD5 618f49a8d292ad9dd5e38e7271ac3f6a
BLAKE2b-256 463ac34f6fdf2ce4f464a10108f7e140475447969c3ff2aa9b49bd811f129be9

See more details on using hashes here.

File details

Details for the file schul_cloud_search_tests-1.0.13-py3-none-any.whl.

File metadata

File hashes

Hashes for schul_cloud_search_tests-1.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 3bad3f5dfbd4e80a19adb1390d98be731c4d3405b753634ae19b345fe5d7913a
MD5 c4ffdeeb6c1fbd8b78bc748751711ea9
BLAKE2b-256 6d9a0a6c3fe75799656078997a52ba8dd933f0f8f99544d6c05eec06f7e36d2b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page