at 25.11-pre 2.1 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, ... }: 3 let 4 dependencyTrackPort = 8081; 5 in 6 { 7 name = "dependency-track"; 8 meta = { 9 maintainers = pkgs.lib.teams.cyberus.members; 10 }; 11 12 nodes = { 13 server = 14 { pkgs, ... }: 15 { 16 virtualisation = { 17 cores = 2; 18 diskSize = 4096; 19 memorySize = 1024 * 2; 20 }; 21 22 environment.systemPackages = with pkgs; [ curl ]; 23 systemd.services.dependency-track = { 24 # source: https://github.com/DependencyTrack/dependency-track/blob/37e0ba59e8057c18a87a7a76e247a8f75677a56c/dev/scripts/data-nist-generate-dummy.sh 25 preStart = '' 26 set -euo pipefail 27 28 NIST_DIR="$HOME/.dependency-track/nist" 29 30 rm -rf "$NIST_DIR" 31 mkdir -p "$NIST_DIR" 32 33 for feed in $(seq "2024" "2002"); do 34 touch "$NIST_DIR/nvdcve-1.1-$feed.json.gz" 35 echo "9999999999999" > "$NIST_DIR/nvdcve-1.1-$feed.json.gz.ts" 36 done 37 ''; 38 }; 39 services.dependency-track = { 40 enable = true; 41 port = dependencyTrackPort; 42 nginx.domain = "localhost"; 43 database.passwordFile = "${pkgs.writeText "dbPassword" ''hunter2'THE'''H''''E''}"; 44 }; 45 }; 46 }; 47 48 testScript = 49 # python 50 '' 51 import json 52 53 start_all() 54 55 server.wait_for_unit("dependency-track.service") 56 server.wait_until_succeeds( 57 "journalctl -o cat -u dependency-track.service | grep 'Dependency-Track is ready'" 58 ) 59 server.wait_for_open_port(${toString dependencyTrackPort}) 60 61 with subtest("version api returns correct version"): 62 version = json.loads( 63 server.succeed("curl http://localhost/api/version") 64 ) 65 assert version["version"] == "${pkgs.dependency-track.version}" 66 67 with subtest("nginx serves frontend"): 68 server.succeed("curl http://localhost/ | grep \"<title>Dependency-Track</title>\"") 69 ''; 70 } 71)