Skip to main content

pytest-meilisearch

Test Status pre-commit.ci status PyPI version PyPI - Python Version

pytest helpers for testing Python projects using Meilisearch.

Installation

Using a virtual environment is recommended for installing this package. Once the virtual environment is created and activated, install the package with:

pip install pytest-meilisearch

Usage

Note that to use any of the async options you also need to install an async test helper such as pytest-asyncio. In order to use --start-meilisearch Docker has to be installed.

Configuration

Flags

  • --meilisearch-host: Host where the Meilisearch test server is running. For example http://localhost. Default = http://127.0.0.1 (This is the same as http://localhost).
  • --meilisearch-port: Port where the Meilisearch test server is running. For example 7700. Default = 7700.
  • --meilisearch-master-key": The master key for the Meilisearch test server. Default = None.
  • --start-meilisearch: Start a Meilisearch Docker container before running the tests. For this to work Docker has to be installed first. Default = False.
  • --meilisearch-version: When using --start-meilisearch the this flag will set the version of Meilisearch to start. Default = latest.
  • --meilisearch-start-timeout: The number of seconds to wait for Meilisearch to start before timing out. Default = 120.

Settings

  • meilisearch_client_scope: Modify the scope of the async_client and client fixtures. Valid settings are function, module, package, or session. Default = function.
  • meilisearch_clear_indexes: Controls is indexes are deleted after each tests. This can be useful to ensure that tests don't interfer with each other. Valid options are none = indexes are not deleted, async = indexes are asyncronously deleted after each test, or sync = indexes are syncronously deleted between each test. Default = none.

Examples

  • Testing that your function that adds documents to an index is successful:

    • async:

      async def test_my_func(async_client):
          docs = [
              {"id": 1, "title": "Ready Player One"},
              {"id": 2, "title": "The Hitchhiker's Guide to the Galaxy"},
          ]
          index_name = "books"
          await my_func(index_name, docs)
          index = async_client.index(index_name)
          result = await index.get_documents()
          assert result.results == docs
      
    • sync:

      def test_my_func(client):
          docs = [
              {"id": 1, "title": "Ready Player One"},
              {"id": 2, "title": "The Hitchhiker's Guide to the Galaxy"},
          ]
          index_name = "books"
          my_func(index_name, docs)
          index = client.index(index_name)
          result = index.get_documents()
          assert result.results == docs
      
  • Testing that your search is successful:

    • async:

      async def test_my_func(async_index_with_documents):
          docs = [
              {"id": 1, "title": "Ready Player One"},
              {"id": 2, "title": "The Hitchhiker's Guide to the Galaxy"},
          ]
          index_name = "books"
          index = await async_index_with_documents(docs, index_name)
          results = await my_func("Ready Player One")
          expected = "Ready Player One"  # Whatever you expect to be returned
          assert result == expected
      
    • sync:

      def test_my_func(index_with_documents):
          docs = [
              {"id": 1, "title": "Ready Player One"},
              {"id": 2, "title": "The Hitchhiker's Guide to the Galaxy"},
          ]
          index_name = "books"
          index = index_with_documents(docs, index_name)
          results = my_func("Ready Player One")
          expected = "Ready Player One"  # Whatever you expect to be returned
          assert result == expected
      

Contributing

If you are interested in contributing to this project please see our contributing guide.

Download files

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

Source Distribution

pytest_meilisearch-0.3.5.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

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

pytest_meilisearch-0.3.5-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file pytest_meilisearch-0.3.5.tar.gz.

File metadata

  • Download URL: pytest_meilisearch-0.3.5.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.12 Linux/6.2.0-1018-azure

File hashes

Hashes for pytest_meilisearch-0.3.5.tar.gz
Algorithm Hash digest
SHA256 1a1f46525cf4e6bd070a7c9d4eaf4def8e1e2eb46697007af0df2744ada861af
MD5 a6d798296610f4aac9c9ee1e8786c267
BLAKE2b-256 7898b777e09353fefc4144e64f59f7bc3c19e4cb4f6db106a573c039d13cff64

See more details on using hashes here.

File details

Details for the file pytest_meilisearch-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: pytest_meilisearch-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.12 Linux/6.2.0-1018-azure

File hashes

Hashes for pytest_meilisearch-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 25dd2b2c4ab211342b5a183cdf895065e39521dbb18cc7c7b1afb645f058d446
MD5 fb84e12c7240b8d10a4710737530b6b6
BLAKE2b-256 ceda152e3d02ed0835050ba061561be8816b228c6c9bedbc2ad0d34afd43ba7d

See more details on using hashes here.

Release history Release notifications | RSS feed

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

This release

0.3.5 This release

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page