github.com/AlekSi/nut@v0.3.1-0.20130607203728-cce108d4135e/integration_test/local_test.go (about) 1 package integration_test 2 3 import ( 4 "os" 5 "runtime" 6 "strings" 7 8 . "launchpad.net/gocheck" 9 ) 10 11 type L struct{} 12 13 var _ = Suite(&L{}) 14 15 func (*L) SetUpTest(c *C) { 16 setupTest(c) 17 } 18 19 func (l *L) TearDownTest(c *C) { 20 l.SetUpTest(c) 21 } 22 23 func (*L) TestGenerateCheck(c *C) { 24 _, stderr := runNut(c, TestNut1, "generate -v") 25 c.Check(stderr, Equals, "nut.json updated.") 26 gitNoDiff(c, TestNut1) 27 28 _, stderr = runNut(c, TestNut1, "check -v") 29 c.Check(stderr, Equals, "nut.json looks good.") 30 gitNoDiff(c, TestNut1) 31 32 c.Check(os.Remove(TestNut2+"/nut.json"), IsNil) 33 _, stderr = runNut(c, TestNut2, "generate -v") 34 expected := ` 35 nut.json generated. 36 37 Now you should edit nut.json to fix following errors: 38 Version "0.0.0" is invalid. 39 Vendor should contain only lower word characters (match "^[0-9a-z][0-9a-z_-]*$"). 40 "Crazy Nutter" is not a real person. 41 42 After that run 'nut check' to check spec again.`[1:] 43 c.Check(stderr, Equals, expected) 44 _, err := os.Stat(TestNut2 + "/nut.json") 45 c.Check(err, IsNil) 46 47 _, stderr = runNut(c, TestNut2, "check -v", 1) 48 expected = ` 49 Found errors in nut.json: 50 Version "0.0.0" is invalid. 51 Vendor should contain only lower word characters (match "^[0-9a-z][0-9a-z_-]*$"). 52 "Crazy Nutter" is not a real person.`[1:] 53 c.Check(stderr, Equals, expected) 54 55 c.Check(os.Remove(TestNut3+"/test_nut3.go"), IsNil) 56 _, stderr = runNut(c, TestNut3, "generate -v", 1) 57 c.Check(stderr, Equals, "no Go source files in .") 58 59 _, stderr = runNut(c, TestNut3, "check -v", 1) 60 c.Check(strings.HasPrefix(stderr, "no Go source files in ."), Equals, true) 61 } 62 63 func (*L) TestPackCheckUnpack(c *C) { 64 _, stderr := runNut(c, TestNut1, "pack -v") 65 c.Check(strings.HasSuffix(stderr, "test_nut1-0.0.1.nut created."), Equals, true) 66 gitNoDiff(c, TestNut1) 67 68 _, stderr = runNut(c, TestNut1, "check -v test_nut1-0.0.1.nut") 69 c.Check(strings.HasSuffix(stderr, "test_nut1-0.0.1.nut looks good."), Equals, true) 70 gitNoDiff(c, TestNut1) 71 72 c.Check(os.Remove(TestNut1+"/test_nut1.go"), IsNil) 73 _, stderr = runNut(c, TestNut1, "unpack -v test_nut1-0.0.1.nut") 74 c.Check(strings.HasSuffix(stderr, "test_nut1-0.0.1.nut unpacked."), Equals, true) 75 gitNoDiff(c, TestNut1) 76 77 c.Check(os.Remove(TestNut2+"/nut.json"), IsNil) 78 runNut(c, TestNut2, "generate -v") 79 _, stderr = runNut(c, TestNut2, "pack -v", 1) 80 c.Check(strings.HasPrefix(stderr, "Found errors:"), Equals, true) 81 _, stderr = runNut(c, TestNut2, "pack -nc -v") 82 c.Check(strings.HasSuffix(stderr, "test_nut2-0.0.0.nut created."), Equals, true) 83 84 _, stderr = runNut(c, TestNut2, "check -v test_nut2-0.0.0.nut", 1) 85 c.Check(strings.HasPrefix(stderr, "Found errors in test_nut2-0.0.0.nut:"), Equals, true) 86 87 c.Check(os.Remove(TestNut3+"/README"), IsNil) 88 _, stderr = runNut(c, TestNut3, "pack -nc -v", 1) 89 90 if runtime.GOOS == "windows" { 91 c.Check(strings.HasSuffix(stderr, "README: The system cannot find the file specified."), Equals, true) 92 } else { 93 c.Check(strings.HasSuffix(stderr, "README: no such file or directory"), Equals, true) 94 } 95 } 96 97 func (*L) TestPackInstall(c *C) { 98 packages := make(map[string]bool) 99 stdout, _ := runGo(c, TestNut1, "list all") 100 for _, p := range strings.Split(stdout, "\n") { 101 packages[p] = true 102 } 103 104 _, stderr := runNut(c, TestNut1, "pack -v") 105 c.Check(strings.HasSuffix(stderr, "test_nut1-0.0.1.nut created."), Equals, true) 106 gitNoDiff(c, TestNut1) 107 108 _, stderr = runNut(c, TestNut1, "install -v test_nut1-0.0.1.nut") 109 c.Check(strings.HasSuffix(stderr, "localhost/debug/test_nut1"), Equals, true) 110 111 stdout, _ = runGo(c, TestNut1, "list all") 112 var newPackages []string 113 for _, p := range strings.Split(stdout, "\n") { 114 if !packages[p] { 115 newPackages = append(newPackages, p) 116 } 117 } 118 c.Check(newPackages, DeepEquals, []string{"localhost/debug/test_nut1"}) 119 }