test cases: minor improvements

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
Nicola Murino
2020-05-10 12:37:29 +02:00
parent e0183217b6
commit e0f2ab9c01

View File

@@ -156,7 +156,7 @@ func TestMain(m *testing.M) {
scriptArgs = "%*" scriptArgs = "%*"
} else { } else {
sftpdConf.Actions.ExecuteOn = []string{"download", "upload", "rename", "delete", "ssh_cmd"} sftpdConf.Actions.ExecuteOn = []string{"download", "upload", "rename", "delete", "ssh_cmd"}
sftpdConf.Actions.Command = "/usr/bin/true" sftpdConf.Actions.Command = "/bin/true"
sftpdConf.Actions.HTTPNotificationURL = "http://127.0.0.1:8083/" sftpdConf.Actions.HTTPNotificationURL = "http://127.0.0.1:8083/"
scriptArgs = "$@" scriptArgs = "$@"
scpPath, err = exec.LookPath("scp") scpPath, err = exec.LookPath("scp")
@@ -691,7 +691,7 @@ func TestHomeSpecialChars(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
files, err := client.ReadDir(".") files, err := client.ReadDir(".")
assert.NoError(t, err) assert.NoError(t, err)
assert.GreaterOrEqual(t, len(files), 1) assert.Equal(t, 1, len(files))
err = client.Remove(testFileName) err = client.Remove(testFileName)
assert.NoError(t, err) assert.NoError(t, err)
err = os.Remove(testFilePath) err = os.Remove(testFilePath)
@@ -762,16 +762,20 @@ func TestMultiStepLoginKeyAndPwd(t *testing.T) {
}...) }...)
user, _, err := httpd.AddUser(u, http.StatusOK) user, _, err := httpd.AddUser(u, http.StatusOK)
assert.NoError(t, err) assert.NoError(t, err)
_, err = getSftpClient(user, true) client, err := getSftpClient(user, true)
assert.Error(t, err, "login with public key is disallowed and must fail") if !assert.Error(t, err, "login with public key is disallowed and must fail") {
_, err = getSftpClient(user, true) client.Close()
assert.Error(t, err, "login with password is disallowed and must fail") }
client, err = getSftpClient(user, true)
if !assert.Error(t, err, "login with password is disallowed and must fail") {
client.Close()
}
key, _ := ssh.ParsePrivateKey([]byte(testPrivateKey)) key, _ := ssh.ParsePrivateKey([]byte(testPrivateKey))
authMethods := []ssh.AuthMethod{ authMethods := []ssh.AuthMethod{
ssh.PublicKeys(key), ssh.PublicKeys(key),
ssh.Password(defaultPassword), ssh.Password(defaultPassword),
} }
client, err := getCustomAuthSftpClient(user, authMethods) client, err = getCustomAuthSftpClient(user, authMethods)
if assert.NoError(t, err) { if assert.NoError(t, err) {
defer client.Close() defer client.Close()
assert.NoError(t, checkBasicSFTP(client)) assert.NoError(t, checkBasicSFTP(client))
@@ -804,8 +808,10 @@ func TestMultiStepLoginKeyAndKeyInt(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
err = ioutil.WriteFile(keyIntAuthPath, getKeyboardInteractiveScriptContent([]string{"1", "2"}, 0, false, 1), 0755) err = ioutil.WriteFile(keyIntAuthPath, getKeyboardInteractiveScriptContent([]string{"1", "2"}, 0, false, 1), 0755)
assert.NoError(t, err) assert.NoError(t, err)
_, err = getSftpClient(user, true) client, err := getSftpClient(user, true)
assert.Error(t, err, "login with public key is disallowed and must fail") if !assert.Error(t, err, "login with public key is disallowed and must fail") {
client.Close()
}
key, _ := ssh.ParsePrivateKey([]byte(testPrivateKey)) key, _ := ssh.ParsePrivateKey([]byte(testPrivateKey))
authMethods := []ssh.AuthMethod{ authMethods := []ssh.AuthMethod{
@@ -814,7 +820,7 @@ func TestMultiStepLoginKeyAndKeyInt(t *testing.T) {
return []string{"1", "2"}, nil return []string{"1", "2"}, nil
}), }),
} }
client, err := getCustomAuthSftpClient(user, authMethods) client, err = getCustomAuthSftpClient(user, authMethods)
if assert.NoError(t, err) { if assert.NoError(t, err) {
defer client.Close() defer client.Close()
assert.NoError(t, checkBasicSFTP(client)) assert.NoError(t, checkBasicSFTP(client))
@@ -941,7 +947,8 @@ func TestDeniedLoginMethods(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
client, err = getSftpClient(user, true) client, err = getSftpClient(user, true)
if assert.NoError(t, err) { if assert.NoError(t, err) {
client.Close() defer client.Close()
assert.NoError(t, checkBasicSFTP(client))
} }
user.Password = defaultPassword user.Password = defaultPassword
user, _, err = httpd.UpdateUser(user, http.StatusOK) user, _, err = httpd.UpdateUser(user, http.StatusOK)
@@ -956,7 +963,8 @@ func TestDeniedLoginMethods(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
client, err = getSftpClient(user, false) client, err = getSftpClient(user, false)
if assert.NoError(t, err) { if assert.NoError(t, err) {
client.Close() defer client.Close()
assert.NoError(t, checkBasicSFTP(client))
} }
_, err = httpd.RemoveUser(user, http.StatusOK) _, err = httpd.RemoveUser(user, http.StatusOK)
assert.NoError(t, err) assert.NoError(t, err)
@@ -1215,12 +1223,12 @@ func TestLoginExternalAuthPwdAndPubKey(t *testing.T) {
httpd.SetDataProvider(dataprovider.GetProvider()) httpd.SetDataProvider(dataprovider.GetProvider())
sftpd.SetDataProvider(dataprovider.GetProvider()) sftpd.SetDataProvider(dataprovider.GetProvider())
testFileSize := int64(65535)
client, err := getSftpClient(u, usePubKey) client, err := getSftpClient(u, usePubKey)
if assert.NoError(t, err) { if assert.NoError(t, err) {
defer client.Close() defer client.Close()
testFileName := "test_file.dat" testFileName := "test_file.dat"
testFilePath := filepath.Join(homeBasePath, testFileName) testFilePath := filepath.Join(homeBasePath, testFileName)
testFileSize := int64(65535)
err = createTestFile(testFilePath, testFileSize) err = createTestFile(testFilePath, testFileSize)
assert.NoError(t, err) assert.NoError(t, err)
err = sftpUploadFile(testFilePath, testFileName, testFileSize, client) err = sftpUploadFile(testFilePath, testFileName, testFileSize, client)
@@ -1248,7 +1256,8 @@ func TestLoginExternalAuthPwdAndPubKey(t *testing.T) {
assert.Equal(t, 1, len(users)) assert.Equal(t, 1, len(users))
user := users[0] user := users[0]
assert.Equal(t, 0, len(user.PublicKeys)) assert.Equal(t, 0, len(user.PublicKeys))
assert.Greater(t, user.UsedQuotaSize, int64(0)) assert.Equal(t, testFileSize, user.UsedQuotaSize)
assert.Equal(t, 1, user.UsedQuotaFiles)
_, err = httpd.RemoveUser(user, http.StatusOK) _, err = httpd.RemoveUser(user, http.StatusOK)
assert.NoError(t, err) assert.NoError(t, err)
@@ -1508,8 +1517,10 @@ func TestMaxSessions(t *testing.T) {
if assert.NoError(t, err) { if assert.NoError(t, err) {
defer client.Close() defer client.Close()
assert.NoError(t, checkBasicSFTP(client)) assert.NoError(t, checkBasicSFTP(client))
_, err = getSftpClient(user, usePubKey) c, err := getSftpClient(user, usePubKey)
assert.Error(t, err, "max sessions exceeded, new login should not succeed") if !assert.Error(t, err, "max sessions exceeded, new login should not succeed") {
c.Close()
}
} }
_, err = httpd.RemoveUser(user, http.StatusOK) _, err = httpd.RemoveUser(user, http.StatusOK)
assert.NoError(t, err) assert.NoError(t, err)
@@ -3134,7 +3145,7 @@ func TestBasicGitCommands(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
out, err = pushToGitRepo(clonePath) out, err = pushToGitRepo(clonePath)
if assert.NoError(t, err, "unexpected error, out: %v", string(out)) { if !assert.NoError(t, err, "unexpected error, out: %v", string(out)) {
printLatestLogs(10) printLatestLogs(10)
} }