Revert "Revert "V0.4.0 imporve error response""

This reverts commit 9744f45e86.
This commit is contained in:
yaziming
2019-09-04 20:41:37 +08:00
parent bb4ec17125
commit 6dc687192e
51 changed files with 1373 additions and 416 deletions

View File

@@ -179,11 +179,11 @@ func _Compress(file *os.File, prefix string, zw *zip.Writer) error {
}
} else {
header, err := zip.FileInfoHeader(info)
header.Name = prefix + "/" + header.Name
if err != nil {
debug.PrintStack()
return err
}
header.Name = prefix + "/" + header.Name
writer, err := zw.CreateHeader(header)
if err != nil {
debug.PrintStack()

View File

@@ -1,8 +1,12 @@
package utils
import (
"archive/zip"
. "github.com/smartystreets/goconvey/convey"
"io"
"log"
"os"
"runtime/debug"
"testing"
)
@@ -38,9 +42,13 @@ func TestIsDir(t *testing.T) {
}
func TestCompress(t *testing.T) {
var pathString = "../utils"
err := os.Mkdir("testCompress", os.ModePerm)
if err != nil {
t.Error("create testCompress failed")
}
var pathString = "testCompress"
var files []*os.File
var disPath = "../utils/test"
var disPath = "testCompress"
file, err := os.Open(pathString)
if err != nil {
t.Error("open source path failed")
@@ -52,15 +60,60 @@ func TestCompress(t *testing.T) {
So(er, ShouldEqual, nil)
})
})
os.RemoveAll("testCompress")
}
// 测试之前需存在有效的test(.zip)文件
func TestDeCompress(t *testing.T) {
var tmpFilePath = "./test"
tmpFile, err := os.OpenFile(tmpFilePath, os.O_RDONLY, 0777)
func Zip(zipFile string, fileList []string) error {
// 创建 zip文件
fw, err := os.Create(zipFile)
if err != nil {
t.Fatal("open zip file failed")
log.Fatal()
}
defer fw.Close()
// 实例化新的 zip.Writer
zw := zip.NewWriter(fw)
defer func() {
// 检测一下是否成功关闭
if err := zw.Close(); err != nil {
log.Fatalln(err)
}
}()
for _, fileName := range fileList {
fr, err := os.Open(fileName)
if err != nil {
return err
}
fi, err := fr.Stat()
if err != nil {
return err
}
// 写入文件的头信息
fh, err := zip.FileInfoHeader(fi)
w, err := zw.CreateHeader(fh)
if err != nil {
return err
}
// 写入文件内容
_, err = io.Copy(w, fr)
if err != nil {
return err
}
}
return nil
}
func TestDeCompress(t *testing.T) {
err := os.Mkdir("testDeCompress", os.ModePerm)
err = Zip("demo.zip", []string{})
if err != nil {
t.Error("create zip file failed")
}
tmpFile, err := os.OpenFile("demo.zip", os.O_RDONLY, 0777)
if err != nil {
debug.PrintStack()
t.Error("open demo.zip failed")
}
var dstPath = "./testDeCompress"
Convey("Test DeCopmress func", t, func() {
@@ -68,5 +121,7 @@ func TestDeCompress(t *testing.T) {
err := DeCompress(tmpFile, dstPath)
So(err, ShouldEqual, nil)
})
os.RemoveAll("testDeCompress")
os.Remove("demo.zip")
}