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  }