Mercurial > yakumo_izuru > aya
comparison zs_test.go @ 4:05fc24caac37 draft
render uses strings, not bytes; added helpers for env and run
| author | zaitsev.serge |
|---|---|
| date | Fri, 05 Dec 2014 18:09:03 +0000 |
| parents | fd79b3a90bef |
| children | e0ee0721d34f |
comparison
equal
deleted
inserted
replaced
| 3:53dea9841cd9 | 4:05fc24caac37 |
|---|---|
| 1 package main | 1 package main |
| 2 | 2 |
| 3 import "testing" | 3 import ( |
| 4 "bytes" | |
| 5 "fmt" | |
| 6 "log" | |
| 7 "os" | |
| 8 "strings" | |
| 9 "testing" | |
| 10 ) | |
| 4 | 11 |
| 5 func TestSplit2(t *testing.T) { | 12 func TestSplit2(t *testing.T) { |
| 6 if a, b := split2("a:b", ":"); a != "a" || b != "b" { | 13 if a, b := split2("a:b", ":"); a != "a" || b != "b" { |
| 7 t.Fail() | 14 t.Fail() |
| 8 } | 15 } |
| 73 t.Error() | 80 t.Error() |
| 74 } | 81 } |
| 75 if s, err := render("{{greet}} x{{foo}}z", vars, eval); err != nil || s != "hello xbarz" { | 82 if s, err := render("{{greet}} x{{foo}}z", vars, eval); err != nil || s != "hello xbarz" { |
| 76 t.Error() | 83 t.Error() |
| 77 } | 84 } |
| 85 // Test error case | |
| 86 if s, err := render("a {{greet text ", vars, eval); err == nil || len(s) != 0 { | |
| 87 t.Error() | |
| 88 } | |
| 78 } | 89 } |
| 90 | |
| 91 func TestEnv(t *testing.T) { | |
| 92 e := env(map[string]string{"foo": "bar", "baz": "hello world"}) | |
| 93 mustHave := []string{"ZS=" + os.Args[0], "ZS_FOO=bar", "ZS_BAZ=hello world", "PATH="} | |
| 94 for _, s := range mustHave { | |
| 95 found := false | |
| 96 for _, v := range e { | |
| 97 if strings.HasPrefix(v, s) { | |
| 98 found = true | |
| 99 break | |
| 100 } | |
| 101 } | |
| 102 if !found { | |
| 103 t.Error("Missing", s) | |
| 104 } | |
| 105 } | |
| 106 } | |
| 107 | |
| 108 func TestRun(t *testing.T) { | |
| 109 out := bytes.NewBuffer(nil) | |
| 110 err := run("some_unbelievable_command_name", []string{}, map[string]string{}, out) | |
| 111 if err == nil { | |
| 112 t.Error() | |
| 113 } | |
| 114 | |
| 115 out = bytes.NewBuffer(nil) | |
| 116 err = run(os.Args[0], []string{"-test.run=TestHelperProcess"}, | |
| 117 map[string]string{"helper": "1", "out": "foo", "err": "bar"}, out) | |
| 118 if err != nil { | |
| 119 t.Error(err) | |
| 120 } | |
| 121 if out.String() != "foo\n" { | |
| 122 t.Error(out.String()) | |
| 123 } | |
| 124 } | |
| 125 | |
| 126 func TestHelperProcess(*testing.T) { | |
| 127 if os.Getenv("ZS_HELPER") != "1" { | |
| 128 return | |
| 129 } | |
| 130 defer os.Exit(0) // TODO check exit code | |
| 131 log.Println(os.Getenv("ZS_ERR")) // stderr | |
| 132 fmt.Println(os.Getenv("ZS_OUT")) // stdout | |
| 133 } |
