diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index 1cfbe7b4b825..ab42a99486aa 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -161,6 +161,7 @@ with lib.maintainers; { ekleog ralith mjlbach + dandellion ]; scope = "Maintain the ecosystem around Matrix, a decentralized messenger."; }; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index e8c86394831d..a8e06a0cee1e 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -431,6 +431,7 @@ in trezord = handleTest ./trezord.nix {}; trickster = handleTest ./trickster.nix {}; trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {}; + txredisapi = handleTest ./txredisapi.nix {}; tuptime = handleTest ./tuptime.nix {}; turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {}; ucarp = handleTest ./ucarp.nix {}; diff --git a/nixos/tests/txredisapi.nix b/nixos/tests/txredisapi.nix new file mode 100644 index 000000000000..bc3814a71375 --- /dev/null +++ b/nixos/tests/txredisapi.nix @@ -0,0 +1,27 @@ +import ./make-test-python.nix ({ pkgs, ... }: +{ + name = "txredisapi"; + meta = with pkgs.lib.maintainers; { + maintainers = [ dandellion ]; + }; + + nodes = { + machine = + { pkgs, ... }: + + { + services.redis.enable = true; + services.redis.unixSocket = "/run/redis/redis.sock"; + + environment.systemPackages = with pkgs; [ (python38.withPackages (ps: [ ps.twisted ps.txredisapi ps.mock ]))]; + }; + }; + + testScript = '' + start_all() + machine.wait_for_unit("redis") + machine.wait_for_open_port("6379") + + tests = machine.succeed("PYTHONPATH=\"${pkgs.python3Packages.txredisapi.src}\" python -m twisted.trial ${pkgs.python3Packages.txredisapi.src}/tests") + ''; +}) diff --git a/pkgs/development/python-modules/txredisapi/default.nix b/pkgs/development/python-modules/txredisapi/default.nix new file mode 100644 index 000000000000..9d8b268b30b2 --- /dev/null +++ b/pkgs/development/python-modules/txredisapi/default.nix @@ -0,0 +1,28 @@ +{ lib, buildPythonPackage, fetchFromGitHub, nixosTests, six, twisted }: + +buildPythonPackage rec { + pname = "txredisapi"; + version = "1.4.7"; + + src = fetchFromGitHub { + owner = "IlyaSkriblovsky"; + repo = "txredisapi"; + rev = "1.4.7"; + sha256 = "1f7j3c5l7jcfphvsk7nqmgyb4jaydbzq081m555kw0f9xxak0pgq"; + }; + + propagatedBuildInputs = [ six twisted ]; + + doCheck = false; + pythonImportsCheck = [ "txredisapi" ]; + + passthru.tests.unit-tests = nixosTests.txredisapi; + + meta = with lib; { + homepage = "https://github.com/IlyaSkriblovsky/txredisapi"; + description = "non-blocking redis client for python"; + license = licenses.asl20; + maintainers = with maintainers; [ dandellion ]; + }; +} + diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix index c65627311439..1d8c2737b012 100644 --- a/pkgs/servers/matrix-synapse/default.nix +++ b/pkgs/servers/matrix-synapse/default.nix @@ -60,7 +60,7 @@ buildPythonApplication rec { typing-extensions unpaddedbase64 ] ++ lib.optional enableSystemd systemd - ++ lib.optional enableRedis hiredis; + ++ lib.optionals enableRedis [ hiredis txredisapi ]; checkInputs = [ mock parameterized openssl ]; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b025b02f70d7..2fa985758e75 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8711,6 +8711,8 @@ in { txgithub = callPackage ../development/python-modules/txgithub { }; + txredisapi = callPackage ../development/python-modules/txredisapi { }; + txrequests = callPackage ../development/python-modules/txrequests { }; txtorcon = callPackage ../development/python-modules/txtorcon { };