mirror of
https://github.com/kevin-DL/revel-cmd.git
synced 2026-01-19 21:55:27 +00:00
Enhancements to Revel command
Reformat of code Allow user to use a mix of command line arguments and flags Enhance the import tool to detect missing packages in the modules side Added test cases for all commands
This commit is contained in:
74
revel/command_test.go
Normal file
74
revel/command_test.go
Normal file
@@ -0,0 +1,74 @@
|
||||
package main_test
|
||||
|
||||
import (
|
||||
"github.com/revel/cmd/logger"
|
||||
"github.com/revel/cmd/model"
|
||||
"github.com/revel/cmd/utils"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"go/build"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// Test that the event handler can be attached and it dispatches the event received
|
||||
func setup(suffix string, a *assert.Assertions) (string) {
|
||||
temp := os.TempDir()
|
||||
wd, _ := os.Getwd()
|
||||
utils.InitLogger(wd, logger.LvlInfo)
|
||||
gopath := filepath.Join(temp, "revel-test",suffix)
|
||||
if utils.Exists(gopath) {
|
||||
utils.Logger.Info("Removing test path", "path", gopath)
|
||||
if err := os.RemoveAll(gopath); err != nil {
|
||||
a.Fail("Failed to remove test path")
|
||||
}
|
||||
}
|
||||
err := os.MkdirAll(gopath, os.ModePerm)
|
||||
a.Nil(err, "Failed to create gopath "+gopath)
|
||||
|
||||
// So this is the issue, on the mac when folders are created in a temp folder they are returned like
|
||||
// /var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/revel-test/revel-test-build
|
||||
// But if you change into that directory and read the current folder it is
|
||||
// /private/var/folders/nz/vv4_9tw56nv9k3tkvyszvwg80000gn/T/revel-test/revel-test-build
|
||||
// So to make this work on darwin this code was added
|
||||
os.Chdir(gopath)
|
||||
newwd, _ := os.Getwd()
|
||||
gopath = newwd
|
||||
defaultBuild := build.Default
|
||||
defaultBuild.GOPATH = gopath
|
||||
build.Default = defaultBuild
|
||||
utils.Logger.Info("Setup stats", "original wd", wd, "new wd", newwd, "gopath",gopath, "gopath exists", utils.DirExists(gopath), "wd exists", utils.DirExists(newwd))
|
||||
|
||||
return gopath
|
||||
}
|
||||
|
||||
// Create a new app for the name
|
||||
func newApp(name string, command model.COMMAND, precall func(c *model.CommandConfig), a *assert.Assertions) *model.CommandConfig {
|
||||
c := &model.CommandConfig{}
|
||||
switch command {
|
||||
case model.NEW:
|
||||
c.New.ImportPath = name
|
||||
case model.BUILD:
|
||||
c.Build.ImportPath = name
|
||||
case model.TEST:
|
||||
c.Test.ImportPath = name
|
||||
case model.PACKAGE:
|
||||
c.Package.ImportPath = name
|
||||
case model.VERSION:
|
||||
c.Version.ImportPath = name
|
||||
case model.CLEAN:
|
||||
c.Clean.ImportPath = name
|
||||
default:
|
||||
a.Fail("Unknown command ", command)
|
||||
}
|
||||
|
||||
c.Index = command
|
||||
if precall != nil {
|
||||
precall(c)
|
||||
}
|
||||
if !c.UpdateImportPath() {
|
||||
a.Fail("Unable to update import path")
|
||||
}
|
||||
c.InitGoPaths()
|
||||
c.InitPackageResolver()
|
||||
return c
|
||||
}
|
||||
Reference in New Issue
Block a user