Skip to main content

A testing framework for testing frameworks.

Project description

Anachronos

A testing framework for testing frameworks.

Anachronos is an end-to-end testing framework usable with a wide variety of applications. To get started, define an ApplicationRunner which can be used to start your application. Then, write your test classes by inheriting from anachronos.TestCase.

How it works

The framework provides access to a special Anachronos object which is accessible both from the tested application, and from the testing suite. This object effectively acts as a logger on which assertions can be run afterwards. Anachronos assertions are accessible by using the self.assertThat method from within a TestCase. Below is a simple TestCase example taken from the Jivago framework.

import anachronos
from e2e_test.runner import http
from e2e_test.testing_messages import SIMPLE_GET


class SimpleResourceTest(anachronos.TestCase):

    def test_simple_get(self):
        http.get("/")

        self.assertThat(SIMPLE_GET).is_stored()

    def test_post_dto(self):
        response = http.post("/", json={'name': 'Paul Atreides', 'age': 17}).json()

        self.assertEqual('Paul Atreides', response['name'])


if __name__ == '__main__':
    anachronos.run_tests()

With the matching application logic :

import anachronos
from e2e_test.app.components.dtos.request_dto import RequestDto
from e2e_test.app.components.dtos.response_dto import ResponseDto
from e2e_test.testing_messages import SIMPLE_GET
from jivago.lang.annotations import Inject
from jivago.wsgi.annotations import Resource
from jivago.wsgi.methods import GET, POST


@Resource("/")
class SimpleResource(object):

    def __init__(self):
        self.anachronos = anachronos.get_instance()

    @GET
    def simple_get(self) -> str:
        self.anachronos.store(SIMPLE_GET)
        return "OK"

    @POST
    def post_body(self, request: RequestDto) -> ResponseDto:
        return ResponseDto(request.name, True)

Project details


Download files

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

Files for anachronos, version 0.0.5
Filename, size File type Python version Upload date Hashes
Filename, size anachronos-0.0.5.tar.gz (10.0 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page