fetch_ml/internal/jupyter/startup_blacklist_test.go
Jeremie Fraeys 2e701340e5
feat(core): API, worker, queue, and manifest improvements
- Add protocol buffer optimizations (internal/api/protocol.go)
- Add filesystem queue backend (internal/queue/filesystem_queue.go)
- Add run manifest support (internal/manifest/run_manifest.go)
- Worker and jupyter task refinements
- Exported test wrappers for benchmarking
2026-02-12 12:05:17 -05:00

57 lines
2.2 KiB
Go

package jupyter
import (
"os"
"testing"
)
func TestStartupBlockedPackages_DefaultInheritsInstallBlocked(t *testing.T) {
oldInstall := os.Getenv("FETCHML_JUPYTER_BLOCKED_PACKAGES")
_, hadStartup := os.LookupEnv("FETCHML_JUPYTER_STARTUP_BLOCKED_PACKAGES")
oldStartup := os.Getenv("FETCHML_JUPYTER_STARTUP_BLOCKED_PACKAGES")
_ = os.Setenv("FETCHML_JUPYTER_BLOCKED_PACKAGES", "requests,urllib3")
_ = os.Unsetenv("FETCHML_JUPYTER_STARTUP_BLOCKED_PACKAGES")
defer os.Setenv("FETCHML_JUPYTER_BLOCKED_PACKAGES", oldInstall)
if hadStartup {
defer os.Setenv("FETCHML_JUPYTER_STARTUP_BLOCKED_PACKAGES", oldStartup)
} else {
defer os.Unsetenv("FETCHML_JUPYTER_STARTUP_BLOCKED_PACKAGES")
}
cfg := DefaultEnhancedSecurityConfigFromEnv()
startup := startupBlockedPackages(cfg.BlockedPackages)
if len(startup) != 2 {
t.Fatalf("expected startup list to inherit 2 items, got %d", len(startup))
}
}
func TestStartupBlockedPackages_Disabled(t *testing.T) {
oldInstall := os.Getenv("FETCHML_JUPYTER_BLOCKED_PACKAGES")
oldStartup := os.Getenv("FETCHML_JUPYTER_STARTUP_BLOCKED_PACKAGES")
_ = os.Setenv("FETCHML_JUPYTER_BLOCKED_PACKAGES", "requests,urllib3")
_ = os.Setenv("FETCHML_JUPYTER_STARTUP_BLOCKED_PACKAGES", "off")
defer os.Setenv("FETCHML_JUPYTER_BLOCKED_PACKAGES", oldInstall)
defer os.Setenv("FETCHML_JUPYTER_STARTUP_BLOCKED_PACKAGES", oldStartup)
cfg := DefaultEnhancedSecurityConfigFromEnv()
startup := startupBlockedPackages(cfg.BlockedPackages)
if len(startup) != 0 {
t.Fatalf("expected startup list to be disabled, got %d", len(startup))
}
}
func TestStartupBlockedPackages_ExplicitList(t *testing.T) {
oldInstall := os.Getenv("FETCHML_JUPYTER_BLOCKED_PACKAGES")
oldStartup := os.Getenv("FETCHML_JUPYTER_STARTUP_BLOCKED_PACKAGES")
_ = os.Setenv("FETCHML_JUPYTER_BLOCKED_PACKAGES", "requests,urllib3")
_ = os.Setenv("FETCHML_JUPYTER_STARTUP_BLOCKED_PACKAGES", "aiohttp")
defer os.Setenv("FETCHML_JUPYTER_BLOCKED_PACKAGES", oldInstall)
defer os.Setenv("FETCHML_JUPYTER_STARTUP_BLOCKED_PACKAGES", oldStartup)
cfg := DefaultEnhancedSecurityConfigFromEnv()
startup := startupBlockedPackages(cfg.BlockedPackages)
if len(startup) != 1 || startup[0] != "aiohttp" {
t.Fatalf("expected explicit startup list [aiohttp], got %v", startup)
}
}