github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/talks/2013/go4python/monkey.go (about) 1 // +build OMIT 2 3 package main 4 5 import ( 6 "fmt" 7 "net/http" 8 ) 9 10 var authURL = "" 11 12 var auth = func(user string) bool { 13 res, err := http.Get(authURL + "/" + user) 14 return err == nil && res.StatusCode == http.StatusOK 15 } 16 17 func sayHi(user string) { 18 if !auth(user) { 19 fmt.Printf("unknown user %v\n", user) 20 return 21 } 22 fmt.Printf("Hi, %v\n", user) 23 } 24 25 func TestSayHi() { 26 auth = func(string) bool { return true } 27 sayHi("John") 28 29 auth = func(string) bool { return false } 30 sayHi("John") 31 } 32 33 func init() { 34 auth = func(string) bool { return true } 35 } 36 37 func TestAnythingElse() { 38 // auth has been already set to the fake version 39 } 40 41 func main() { 42 TestSayHi() 43 }