cmd_test.go 2.64 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package cmd

import (
	"os"
	"testing"
)

func TestGetRunServerParams(t *testing.T) {
	t.Run("default values", func(t *testing.T) {
		cmd := NewCLI()
		serveCmd, _, err := cmd.Find([]string{"serve"})
		if err != nil {
			t.Errorf("expected serve command, got %s", err)
		}
		host, port, extraOrigins, err := getRunServerParams(serveCmd)
		// assertions
		if err != nil {
			t.Errorf("unexpected error, got %s", err)
		}
		if host != "127.0.0.1" {
			t.Errorf("unexpected host, got %s", host)
		}
		if port != "11434" {
			t.Errorf("unexpected port, got %s", port)
		}
		if len(extraOrigins) != 0 {
			t.Errorf("unexpected origins, got %s", extraOrigins)
		}
	})
	t.Run("environment variables take precedence over default", func(t *testing.T) {
		cmd := NewCLI()
		serveCmd, _, err := cmd.Find([]string{"serve"})
		if err != nil {
			t.Errorf("expected serve command, got %s", err)
		}
		// setup environment variables
		err = os.Setenv("OLLAMA_HOST", "0.0.0.0")
		if err != nil {
			t.Errorf("could not set env var")
		}
		err = os.Setenv("OLLAMA_PORT", "9999")
		if err != nil {
			t.Errorf("could not set env var")
		}
		defer func() {
			os.Unsetenv("OLLAMA_HOST")
			os.Unsetenv("OLLAMA_PORT")
		}()

		host, port, extraOrigins, err := getRunServerParams(serveCmd)
		// assertions
		if err != nil {
			t.Errorf("unexpected error, got %s", err)
		}
		if host != "0.0.0.0" {
			t.Errorf("unexpected host, got %s", host)
		}
		if port != "9999" {
			t.Errorf("unexpected port, got %s", port)
		}
		if len(extraOrigins) != 0 {
			t.Errorf("unexpected origins, got %s", extraOrigins)
		}
	})
	t.Run("command line args take precedence over env vars", func(t *testing.T) {
		cmd := NewCLI()
		serveCmd, _, err := cmd.Find([]string{"serve"})
		if err != nil {
			t.Errorf("expected serve command, got %s", err)
		}
		// setup environment variables
		err = os.Setenv("OLLAMA_HOST", "0.0.0.0")
		if err != nil {
			t.Errorf("could not set env var")
		}
		err = os.Setenv("OLLAMA_PORT", "9999")
		if err != nil {
			t.Errorf("could not set env var")
		}
		defer func() {
			os.Unsetenv("OLLAMA_HOST")
			os.Unsetenv("OLLAMA_PORT")
		}()
		// now set command flags
		serveCmd.Flags().Set("host", "localhost")
		serveCmd.Flags().Set("port", "8888")
Jeffrey Morgan's avatar
Jeffrey Morgan committed
87
		serveCmd.Flags().Set("origins", "http://foo.example.com,http://192.168.1.1")
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103

		host, port, extraOrigins, err := getRunServerParams(serveCmd)
		if err != nil {
			t.Errorf("unexpected error, got %s", err)
		}
		if host != "localhost" {
			t.Errorf("unexpected host, got %s", host)
		}
		if port != "8888" {
			t.Errorf("unexpected port, got %s", port)
		}
		if len(extraOrigins) != 2 {
			t.Errorf("expected two origins, got length %d", len(extraOrigins))
		}
	})
}