From 47566329ff72a0790ea7fc5273fe6d182c57d43a Mon Sep 17 00:00:00 2001 From: Nassim 'Nass' Eddequiouaq Date: Fri, 10 Mar 2017 07:29:25 -0800 Subject: [PATCH 1/2] Fix secretservice tests and expected behaviors Signed-off-by: Nassim 'Nass' Eddequiouaq --- secretservice/secretservice_linux_test.go | 48 ++++++++++++++++++++--- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/secretservice/secretservice_linux_test.go b/secretservice/secretservice_linux_test.go index bd0caf3..4633af3 100644 --- a/secretservice/secretservice_linux_test.go +++ b/secretservice/secretservice_linux_test.go @@ -1,6 +1,7 @@ package secretservice import ( + "strings" "testing" "github.com/docker/docker-credential-helpers/credentials" @@ -16,10 +17,39 @@ func TestSecretServiceHelper(t *testing.T) { } helper := Secretservice{} + + // Check how many docker credentials we have when starting the test + old_auths, err := helper.List() + if err != nil { + t.Fatal(err) + } + + // If any docker credentials with the tests values we are providing, we + // remove them as they probably come from a previous failed test + if len(old_auths) >= 1 { + for k, v := range old_auths { + if strings.Compare(k, creds.ServerURL) == 0 && strings.Compare(v, creds.Username) == 0 { + + if err := helper.Delete(creds.ServerURL); err != nil { + t.Fatal(err) + } + } + } + + } + + // Check again how many docker credentials we have when starting the test + old_auths, err = helper.List() + if err != nil { + t.Fatal(err) + } + + // Add new credentials if err := helper.Add(creds); err != nil { t.Fatal(err) } + // Verify that it is inside the secret service store username, secret, err := helper.Get(creds.ServerURL) if err != nil { t.Fatal(err) @@ -33,15 +63,21 @@ func TestSecretServiceHelper(t *testing.T) { t.Fatalf("expected %s, got %s\n", "foobarbaz", secret) } + // We should have one more credential than before adding + new_auths, err := helper.List() + if err != nil || (len(new_auths)-len(old_auths) != 1) { + t.Fatal(err) + } + old_auths = new_auths + + // Deleting the credentials associated to current server url should succeed if err := helper.Delete(creds.ServerURL); err != nil { t.Fatal(err) } - auths, err := helper.List() - if err != nil || len(auths) == 0 { - t.Fatal(err) - } - helper.Add(creds) - if newauths, err := helper.List(); (len(newauths) - len(auths)) != 1 { + + // We should have one less credential than before deleting + new_auths, err = helper.List() + if err != nil || (len(old_auths)-len(new_auths) != 1) { t.Fatal(err) } } From 2f2e85cfb9ea25f013513d508e4cd162e2030b62 Mon Sep 17 00:00:00 2001 From: Nassim 'Nass' Eddequiouaq Date: Fri, 10 Mar 2017 16:59:57 +0100 Subject: [PATCH 2/2] Remove unnecessary creds list's size check Signed-off-by: Nassim 'Nass' Eddequiouaq --- secretservice/secretservice_linux_test.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/secretservice/secretservice_linux_test.go b/secretservice/secretservice_linux_test.go index 4633af3..8c7839d 100644 --- a/secretservice/secretservice_linux_test.go +++ b/secretservice/secretservice_linux_test.go @@ -26,16 +26,13 @@ func TestSecretServiceHelper(t *testing.T) { // If any docker credentials with the tests values we are providing, we // remove them as they probably come from a previous failed test - if len(old_auths) >= 1 { - for k, v := range old_auths { - if strings.Compare(k, creds.ServerURL) == 0 && strings.Compare(v, creds.Username) == 0 { + for k, v := range old_auths { + if strings.Compare(k, creds.ServerURL) == 0 && strings.Compare(v, creds.Username) == 0 { - if err := helper.Delete(creds.ServerURL); err != nil { - t.Fatal(err) - } + if err := helper.Delete(creds.ServerURL); err != nil { + t.Fatal(err) } } - } // Check again how many docker credentials we have when starting the test