at 23.05-pre 1.4 kB view raw
1# This test start mongodb, runs a query using mongo shell 2 3import ./make-test-python.nix ({ pkgs, ... }: 4 let 5 testQuery = pkgs.writeScript "nixtest.js" '' 6 db.greetings.insert({ "greeting": "hello" }); 7 print(db.greetings.findOne().greeting); 8 ''; 9 10 runMongoDBTest = pkg: '' 11 node.execute("(rm -rf data || true) && mkdir data") 12 node.execute( 13 "${pkg}/bin/mongod --fork --logpath logs --dbpath data" 14 ) 15 node.wait_for_open_port(27017) 16 17 assert "hello" in node.succeed( 18 "${pkg}/bin/mongo ${testQuery}" 19 ) 20 21 node.execute( 22 "${pkg}/bin/mongod --shutdown --dbpath data" 23 ) 24 node.wait_for_closed_port(27017) 25 ''; 26 27 in { 28 name = "mongodb"; 29 meta = with pkgs.lib.maintainers; { 30 maintainers = [ bluescreen303 offline cstrahan rvl phile314 ]; 31 }; 32 33 nodes = { 34 node = {...}: { 35 environment.systemPackages = with pkgs; [ 36 mongodb-3_4 37 mongodb-3_6 38 mongodb-4_0 39 mongodb-4_2 40 mongodb-4_4 41 mongodb-5_0 42 ]; 43 }; 44 }; 45 46 testScript = '' 47 node.start() 48 '' 49 + runMongoDBTest pkgs.mongodb-3_4 50 + runMongoDBTest pkgs.mongodb-3_6 51 + runMongoDBTest pkgs.mongodb-4_0 52 + runMongoDBTest pkgs.mongodb-4_2 53 + runMongoDBTest pkgs.mongodb-4_4 54 + runMongoDBTest pkgs.mongodb-5_0 55 + '' 56 node.shutdown() 57 ''; 58 })