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  }