nixos/tests: Init hockeypuck tests
This commit is contained in:
parent
09a49354b6
commit
f8b6ba005e
|
@ -174,6 +174,7 @@ in
|
||||||
hitch = handleTest ./hitch {};
|
hitch = handleTest ./hitch {};
|
||||||
hledger-web = handleTest ./hledger-web.nix {};
|
hledger-web = handleTest ./hledger-web.nix {};
|
||||||
hocker-fetchdocker = handleTest ./hocker-fetchdocker {};
|
hocker-fetchdocker = handleTest ./hocker-fetchdocker {};
|
||||||
|
hockeypuck = handleTest ./hockeypuck.nix { };
|
||||||
home-assistant = handleTest ./home-assistant.nix {};
|
home-assistant = handleTest ./home-assistant.nix {};
|
||||||
hostname = handleTest ./hostname.nix {};
|
hostname = handleTest ./hostname.nix {};
|
||||||
hound = handleTest ./hound.nix {};
|
hound = handleTest ./hound.nix {};
|
||||||
|
|
63
nixos/tests/hockeypuck.nix
Normal file
63
nixos/tests/hockeypuck.nix
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
import ./make-test-python.nix ({ lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
gpgKeyring = (pkgs.runCommandNoCC "gpg-keyring" { buildInputs = [ pkgs.gnupg ]; } ''
|
||||||
|
mkdir -p $out
|
||||||
|
export GNUPGHOME=$out
|
||||||
|
cat > foo <<EOF
|
||||||
|
%echo Generating a basic OpenPGP key
|
||||||
|
%no-protection
|
||||||
|
Key-Type: DSA
|
||||||
|
Key-Length: 1024
|
||||||
|
Subkey-Type: ELG-E
|
||||||
|
Subkey-Length: 1024
|
||||||
|
Name-Real: Foo Example
|
||||||
|
Name-Email: foo@example.org
|
||||||
|
Expire-Date: 0
|
||||||
|
# Do a commit here, so that we can later print "done"
|
||||||
|
%commit
|
||||||
|
%echo done
|
||||||
|
EOF
|
||||||
|
gpg --batch --generate-key foo
|
||||||
|
rm $out/S.gpg-agent $out/S.gpg-agent.*
|
||||||
|
'');
|
||||||
|
in {
|
||||||
|
name = "hockeypuck";
|
||||||
|
meta.maintainers = with lib.maintainers; [ etu ];
|
||||||
|
|
||||||
|
machine = { ... }: {
|
||||||
|
# Used for test
|
||||||
|
environment.systemPackages = [ pkgs.gnupg ];
|
||||||
|
|
||||||
|
services.hockeypuck.enable = true;
|
||||||
|
|
||||||
|
services.postgresql = {
|
||||||
|
enable = true;
|
||||||
|
ensureDatabases = [ "hockeypuck" ];
|
||||||
|
ensureUsers = [{
|
||||||
|
name = "hockeypuck";
|
||||||
|
ensurePermissions."DATABASE hockeypuck" = "ALL PRIVILEGES";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
machine.wait_for_unit("hockeypuck.service")
|
||||||
|
machine.wait_for_open_port(11371)
|
||||||
|
|
||||||
|
response = machine.succeed("curl -vvv -s http://127.0.0.1:11371/")
|
||||||
|
|
||||||
|
assert "<title>OpenPGP Keyserver</title>" in response, "HTML title not found"
|
||||||
|
|
||||||
|
# Copy the keyring
|
||||||
|
machine.succeed("cp -R ${gpgKeyring} /tmp/GNUPGHOME")
|
||||||
|
|
||||||
|
# Extract our GPG key id
|
||||||
|
keyId = machine.succeed("GNUPGHOME=/tmp/GNUPGHOME gpg --list-keys | grep dsa1024 --after-context=1 | grep -v dsa1024").strip()
|
||||||
|
|
||||||
|
# Send the key to our local keyserver
|
||||||
|
machine.succeed("GNUPGHOME=/tmp/GNUPGHOME gpg --keyserver hkp://127.0.0.1:11371 --send-keys " + keyId)
|
||||||
|
|
||||||
|
# Recieve the key from our local keyserver to a separate directory
|
||||||
|
machine.succeed("GNUPGHOME=$(mktemp -d) gpg --keyserver hkp://127.0.0.1:11371 --recv-keys " + keyId)
|
||||||
|
'';
|
||||||
|
})
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, buildGoModule, fetchFromGitHub }:
|
{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
|
||||||
|
|
||||||
let
|
let
|
||||||
sources = (import ./sources.nix) { inherit fetchFromGitHub; };
|
sources = (import ./sources.nix) { inherit fetchFromGitHub; };
|
||||||
|
@ -10,6 +10,8 @@ buildGoModule {
|
||||||
vendorSha256 = null;
|
vendorSha256 = null;
|
||||||
doCheck = false; # Uses networking for tests
|
doCheck = false; # Uses networking for tests
|
||||||
|
|
||||||
|
passthru.tests = nixosTests.hockeypuck;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "OpenPGP Key Server";
|
description = "OpenPGP Key Server";
|
||||||
homepage = "https://github.com/hockeypuck/hockeypuck";
|
homepage = "https://github.com/hockeypuck/hockeypuck";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, lib, fetchFromGitHub }:
|
{ stdenv, lib, fetchFromGitHub, nixosTests }:
|
||||||
|
|
||||||
let
|
let
|
||||||
sources = (import ./sources.nix) { inherit fetchFromGitHub; };
|
sources = (import ./sources.nix) { inherit fetchFromGitHub; };
|
||||||
|
@ -17,6 +17,8 @@ stdenv.mkDerivation {
|
||||||
cp -vr contrib/templates $out/share/
|
cp -vr contrib/templates $out/share/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
passthru.tests = nixosTests.hockeypuck;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "OpenPGP Key Server web resources";
|
description = "OpenPGP Key Server web resources";
|
||||||
homepage = "https://github.com/hockeypuck/hockeypuck";
|
homepage = "https://github.com/hockeypuck/hockeypuck";
|
||||||
|
|
Loading…
Reference in a new issue