1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchFromGitHub,
6 poetry-core,
7 deprecation,
8 docker,
9 wrapt,
10 typing-extensions,
11}:
12
13buildPythonPackage rec {
14 pname = "testcontainers";
15 version = "4.7.2";
16 pyproject = true;
17
18 disabled = pythonOlder "3.9";
19
20 src = fetchFromGitHub {
21 owner = "testcontainers";
22 repo = "testcontainers-python";
23 rev = "refs/tags/testcontainers-v${version}";
24 hash = "sha256-cmMuX3tKVGe4F+dQlOqQSTS/e49oWuudOekeL/j0YFw=";
25 };
26
27 postPatch = ''
28 echo "${version}" > VERSION
29 '';
30
31 build-system = [ poetry-core ];
32
33 buildInputs = [
34 deprecation
35 docker
36 wrapt
37 ];
38
39 dependencies = [ typing-extensions ];
40
41 # Tests require various container and database services running
42 doCheck = false;
43
44 pythonImportsCheck = [ "testcontainers" ];
45
46 meta = {
47 description = "Allows using docker containers for functional and integration testing";
48 homepage = "https://github.com/testcontainers/testcontainers-python";
49 changelog = "https://github.com/testcontainers/testcontainers-python/releases/tag/testcontainers-v${version}";
50 license = lib.licenses.asl20;
51 maintainers = with lib.maintainers; [ onny ];
52 };
53}