All Projects → praekeltfoundation → seaworthy

praekeltfoundation / seaworthy

Licence: BSD-3-Clause license
Test harness for Docker container images 🌊 🚢

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to seaworthy

pytest-docker-tools
Opionated helpers for creating py.test fixtures for Docker integration and smoke testing environments
Stars: ✭ 61 (+110.34%)
Mutual labels:  integration-testing, pytest-plugin
pytest-elasticsearch
This is a pytest plugin that enables you to test your code that relies on a running Elasticsearch search engine. It allows you to specify fixtures for Elasticsearch process and client.
Stars: ✭ 65 (+124.14%)
Mutual labels:  pytest-plugin
Systemwrapper
.NET library for easier testing of system APIs.
Stars: ✭ 153 (+427.59%)
Mutual labels:  integration-testing
pytest-neo
Matrix has you...
Stars: ✭ 44 (+51.72%)
Mutual labels:  pytest-plugin
Endly
End to end functional test and automation framework
Stars: ✭ 178 (+513.79%)
Mutual labels:  integration-testing
nodejs-integration-tests-best-practices
✅ Beyond the basics of Node.js testing. Including a super-comprehensive best practices list and an example app (April 2022)
Stars: ✭ 2,842 (+9700%)
Mutual labels:  integration-testing
Dockertest
Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work.
Stars: ✭ 2,254 (+7672.41%)
Mutual labels:  integration-testing
pytest-datafiles
pytest plugin to create a tmpdir containing a preconfigured set of files and/or directories.
Stars: ✭ 75 (+158.62%)
Mutual labels:  pytest-plugin
pythonista-chromeless
Serverless selenium which dynamically execute any given code.
Stars: ✭ 31 (+6.9%)
Mutual labels:  integration-testing
pytest-rabbitmq
This is a pytest plugin, that enables you to test your code that relies on a running RabbitMQ Queues. It allows you to specify additional fixtures for RabbitMQ process and client.
Stars: ✭ 34 (+17.24%)
Mutual labels:  pytest-plugin
Skrape.it
A Kotlin-based testing/scraping/parsing library providing the ability to analyze and extract data from HTML (server & client-side rendered). It places particular emphasis on ease of use and a high level of readability by providing an intuitive DSL. It aims to be a testing lib, but can also be used to scrape websites in a convenient fashion.
Stars: ✭ 231 (+696.55%)
Mutual labels:  integration-testing
Onion Architecture Asp.net Core
WhiteApp API solution template which is built on Onion Architecture with all essential feature using .NET 5!
Stars: ✭ 196 (+575.86%)
Mutual labels:  integration-testing
portman
Port OpenAPI Specs to Postman Collections, inject test suite and run via Newman 👨🏽‍🚀
Stars: ✭ 530 (+1727.59%)
Mutual labels:  integration-testing
Tutorial Soap Spring Boot Cxf
Tutorial how to create, test, deploy, monitor SOAP-Webservices using Spring Boot and Apache CXF
Stars: ✭ 167 (+475.86%)
Mutual labels:  integration-testing
clj-test-containers
Control Docker containers from your test lifecycle for Clojure integration tests.
Stars: ✭ 116 (+300%)
Mutual labels:  integration-testing
Android Client
An android client for the MifosX platform
Stars: ✭ 150 (+417.24%)
Mutual labels:  integration-testing
Dntframeworkcore
Lightweight and Extensible Infrastructure for Building Web Applications - Web Application Framework
Stars: ✭ 208 (+617.24%)
Mutual labels:  integration-testing
overhave
Web-framework for BDD: scalable, configurable, easy to use, based on Flask Admin and Pydantic.
Stars: ✭ 61 (+110.34%)
Mutual labels:  pytest-plugin
showcase
A Full Stack Journey with Micro Services and Micro Front Ends. Using dapr, kubernetes, react module federation and web assembly,
Stars: ✭ 45 (+55.17%)
Mutual labels:  integration-testing
osgi-testsuite
The OSGi Test Suite runs all JUnit tests in a given list of bundles
Stars: ✭ 15 (-48.28%)
Mutual labels:  integration-testing

Seaworthy

https://readthedocs.org/projects/seaworthy/badge/?version=latest https://travis-ci.org/praekeltfoundation/seaworthy.svg?branch=develop

Seaworthy is a test harness for Docker container images. It allows you to use Docker containers and other Docker resources as fixtures for tests written in Python.

Seaworthy supports Python 3.4 and newer. You can find more information in the documentation.

A demo repository is available with a set of Seaworthy tests for a simple Django application. Seaworthy is also introduced in our blog post on continuous integration with Docker on Travis CI.

For more background on the design and purpose of Seaworthy, see our PyConZA 2018 talk (slides).

Quick demo

First install Seaworthy along with pytest using pip:

pip install seaworthy[pytest]

Write some tests in a file, for example, test_echo_container.py:

from seaworthy.definitions import ContainerDefinition

container = ContainerDefinition(
    'echo', 'jmalloc/echo-server',
    wait_patterns=[r'Echo server listening on port 8080'],
    create_kwargs={'ports': {'8080': None}})
fixture = container.pytest_fixture('echo_container')


def test_echo(echo_container):
    r = echo_container.http_client().get('/foo')
    assert r.status_code == 200
    assert 'HTTP/1.1 GET /foo' in r.text

Run pytest:

pytest -v test_echo_container.py

Project status

Seaworthy should be considered alpha-level software. It is well-tested and works well for the first few things we have used it for, but we would like to use it for more of our Docker projects, which may require some parts of Seaworthy to evolve further. See the project issues for known issues/shortcomings.

The project was originally split out of the tests we wrote for our docker-django-bootstrap project. There are examples of Seaworthy in use there.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].