From 636e0e552d7084c0a3b09bf7cf2ad42f560e3819 Mon Sep 17 00:00:00 2001 From: aszlig Date: Mon, 11 Apr 2016 12:03:16 +0200 Subject: nixos/tests/taskserver: Test imperative users As the nixos-taskserver command can also be used to imperatively manage users, we need to test this as well. Signed-off-by: aszlig --- nixos/tests/taskserver.nix | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) (limited to 'nixos/tests/taskserver.nix') diff --git a/nixos/tests/taskserver.nix b/nixos/tests/taskserver.nix index 61f2b06a7f74..413c52a303ec 100644 --- a/nixos/tests/taskserver.nix +++ b/nixos/tests/taskserver.nix @@ -1,7 +1,7 @@ import ./make-test.nix { name = "taskserver"; - nodes = { + nodes = rec { server = { networking.firewall.enable = false; services.taskserver.enable = true; @@ -19,15 +19,10 @@ import ./make-test.nix { users.users.alice.isNormalUser = true; users.users.bob.isNormalUser = true; users.users.foo.isNormalUser = true; + users.users.bar.isNormalUser = true; }; - client2 = { pkgs, ... }: { - networking.firewall.enable = false; - environment.systemPackages = [ pkgs.taskwarrior ]; - users.users.alice.isNormalUser = true; - users.users.bob.isNormalUser = true; - users.users.foo.isNormalUser = true; - }; + client2 = client1; }; testScript = { nodes, ... }: let @@ -65,6 +60,17 @@ import ./make-test.nix { } } + sub testSync ($) { + my $user = $_[0]; + subtest "sync for user $user", sub { + $client1->succeed(su $user, "task add foo >&2"); + $client1->succeed(su $user, "task sync >&2"); + $client2->fail(su $user, "task list >&2"); + $client2->succeed(su $user, "task sync >&2"); + $client2->succeed(su $user, "task list >&2"); + }; + } + startAll; $server->waitForUnit("taskserver.service"); @@ -84,14 +90,16 @@ import ./make-test.nix { setupClientsFor "testOrganisation", "foo"; setupClientsFor "anotherOrganisation", "bob"; - for ("alice", "bob", "foo") { - subtest "sync for $_", sub { - $client1->succeed(su $_, "task add foo >&2"); - $client1->succeed(su $_, "task sync >&2"); - $client2->fail(su $_, "task list >&2"); - $client2->succeed(su $_, "task sync >&2"); - $client2->succeed(su $_, "task list >&2"); - }; - } + testSync $_ for ("alice", "bob", "foo"); + + $server->fail("nixos-taskserver add-user imperativeOrg bar"); + $server->succeed( + "nixos-taskserver add-org imperativeOrg", + "nixos-taskserver add-user imperativeOrg bar" + ); + + setupClientsFor "imperativeOrg", "bar"; + + testSync "bar"; ''; } -- cgit 1.4.1