|
|
|
@ -1,11 +1,9 @@ |
|
|
|
package api |
|
|
|
|
|
|
|
import ( |
|
|
|
"fmt" |
|
|
|
"net" |
|
|
|
"testing" |
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert" |
|
|
|
"github.com/ollama/ollama/envconfig" |
|
|
|
) |
|
|
|
|
|
|
|
func TestClientFromEnvironment(t *testing.T) { |
|
|
|
@ -35,6 +33,7 @@ func TestClientFromEnvironment(t *testing.T) { |
|
|
|
for k, v := range testCases { |
|
|
|
t.Run(k, func(t *testing.T) { |
|
|
|
t.Setenv("OLLAMA_HOST", v.value) |
|
|
|
envconfig.LoadConfig() |
|
|
|
|
|
|
|
client, err := ClientFromEnvironment() |
|
|
|
if err != v.err { |
|
|
|
@ -46,40 +45,4 @@ func TestClientFromEnvironment(t *testing.T) { |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
hostTestCases := map[string]*testCase{ |
|
|
|
"empty": {value: "", expect: "127.0.0.1:11434"}, |
|
|
|
"only address": {value: "1.2.3.4", expect: "1.2.3.4:11434"}, |
|
|
|
"only port": {value: ":1234", expect: ":1234"}, |
|
|
|
"address and port": {value: "1.2.3.4:1234", expect: "1.2.3.4:1234"}, |
|
|
|
"hostname": {value: "example.com", expect: "example.com:11434"}, |
|
|
|
"hostname and port": {value: "example.com:1234", expect: "example.com:1234"}, |
|
|
|
"zero port": {value: ":0", expect: ":0"}, |
|
|
|
"too large port": {value: ":66000", err: ErrInvalidHostPort}, |
|
|
|
"too small port": {value: ":-1", err: ErrInvalidHostPort}, |
|
|
|
"ipv6 localhost": {value: "[::1]", expect: "[::1]:11434"}, |
|
|
|
"ipv6 world open": {value: "[::]", expect: "[::]:11434"}, |
|
|
|
"ipv6 no brackets": {value: "::1", expect: "[::1]:11434"}, |
|
|
|
"ipv6 + port": {value: "[::1]:1337", expect: "[::1]:1337"}, |
|
|
|
"extra space": {value: " 1.2.3.4 ", expect: "1.2.3.4:11434"}, |
|
|
|
"extra quotes": {value: "\"1.2.3.4\"", expect: "1.2.3.4:11434"}, |
|
|
|
"extra space+quotes": {value: " \" 1.2.3.4 \" ", expect: "1.2.3.4:11434"}, |
|
|
|
"extra single quotes": {value: "'1.2.3.4'", expect: "1.2.3.4:11434"}, |
|
|
|
} |
|
|
|
|
|
|
|
for k, v := range hostTestCases { |
|
|
|
t.Run(k, func(t *testing.T) { |
|
|
|
t.Setenv("OLLAMA_HOST", v.value) |
|
|
|
|
|
|
|
oh, err := GetOllamaHost() |
|
|
|
if err != v.err { |
|
|
|
t.Fatalf("expected %s, got %s", v.err, err) |
|
|
|
} |
|
|
|
|
|
|
|
if err == nil { |
|
|
|
host := net.JoinHostPort(oh.Host, oh.Port) |
|
|
|
assert.Equal(t, v.expect, host, fmt.Sprintf("%s: expected %s, got %s", k, v.expect, host)) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|