import ./make-test-python.nix (
  { lib, ... }:
  {
    name = "tor";
    meta.maintainers = with lib.maintainers; [ joachifm ];

    nodes.client =
      { pkgs, ... }:
      {
        boot.kernelParams = [
          "audit=0"
          "apparmor=0"
          "quiet"
        ];
        networking.firewall.enable = false;
        networking.useDHCP = false;

        environment.systemPackages = [ pkgs.netcat ];
        services.tor.enable = true;
        services.tor.client.enable = true;
        services.tor.settings.ControlPort = 9051;
      };

    testScript = ''
      client.wait_for_unit("tor.service")
      client.wait_for_open_port(9051)
      assert "514 Authentication required." in client.succeed(
          "echo GETINFO version | nc 127.0.0.1 9051"
      )
    '';
  }
)