cmd_test.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package cmd
  2. import (
  3. "os"
  4. "testing"
  5. )
  6. func TestGetRunServerParams(t *testing.T) {
  7. t.Run("default values", func(t *testing.T) {
  8. cmd := NewCLI()
  9. serveCmd, _, err := cmd.Find([]string{"serve"})
  10. if err != nil {
  11. t.Errorf("expected serve command, got %s", err)
  12. }
  13. host, port, extraOrigins, err := getRunServerParams(serveCmd)
  14. // assertions
  15. if err != nil {
  16. t.Errorf("unexpected error, got %s", err)
  17. }
  18. if host != "127.0.0.1" {
  19. t.Errorf("unexpected host, got %s", host)
  20. }
  21. if port != "11434" {
  22. t.Errorf("unexpected port, got %s", port)
  23. }
  24. if len(extraOrigins) != 0 {
  25. t.Errorf("unexpected origins, got %s", extraOrigins)
  26. }
  27. })
  28. t.Run("environment variables take precedence over default", func(t *testing.T) {
  29. cmd := NewCLI()
  30. serveCmd, _, err := cmd.Find([]string{"serve"})
  31. if err != nil {
  32. t.Errorf("expected serve command, got %s", err)
  33. }
  34. // setup environment variables
  35. err = os.Setenv("OLLAMA_HOST", "0.0.0.0")
  36. if err != nil {
  37. t.Errorf("could not set env var")
  38. }
  39. err = os.Setenv("OLLAMA_PORT", "9999")
  40. if err != nil {
  41. t.Errorf("could not set env var")
  42. }
  43. defer func() {
  44. os.Unsetenv("OLLAMA_HOST")
  45. os.Unsetenv("OLLAMA_PORT")
  46. }()
  47. host, port, extraOrigins, err := getRunServerParams(serveCmd)
  48. // assertions
  49. if err != nil {
  50. t.Errorf("unexpected error, got %s", err)
  51. }
  52. if host != "0.0.0.0" {
  53. t.Errorf("unexpected host, got %s", host)
  54. }
  55. if port != "9999" {
  56. t.Errorf("unexpected port, got %s", port)
  57. }
  58. if len(extraOrigins) != 0 {
  59. t.Errorf("unexpected origins, got %s", extraOrigins)
  60. }
  61. })
  62. t.Run("command line args take precedence over env vars", func(t *testing.T) {
  63. cmd := NewCLI()
  64. serveCmd, _, err := cmd.Find([]string{"serve"})
  65. if err != nil {
  66. t.Errorf("expected serve command, got %s", err)
  67. }
  68. // setup environment variables
  69. err = os.Setenv("OLLAMA_HOST", "0.0.0.0")
  70. if err != nil {
  71. t.Errorf("could not set env var")
  72. }
  73. err = os.Setenv("OLLAMA_PORT", "9999")
  74. if err != nil {
  75. t.Errorf("could not set env var")
  76. }
  77. defer func() {
  78. os.Unsetenv("OLLAMA_HOST")
  79. os.Unsetenv("OLLAMA_PORT")
  80. }()
  81. // now set command flags
  82. serveCmd.Flags().Set("host", "localhost")
  83. serveCmd.Flags().Set("port", "8888")
  84. serveCmd.Flags().Set("origins", "http://foo.example.com,http://192.168.1.1")
  85. host, port, extraOrigins, err := getRunServerParams(serveCmd)
  86. if err != nil {
  87. t.Errorf("unexpected error, got %s", err)
  88. }
  89. if host != "localhost" {
  90. t.Errorf("unexpected host, got %s", host)
  91. }
  92. if port != "8888" {
  93. t.Errorf("unexpected port, got %s", port)
  94. }
  95. if len(extraOrigins) != 2 {
  96. t.Errorf("expected two origins, got length %d", len(extraOrigins))
  97. }
  98. })
  99. }