mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-21 15:10:12 +00:00
* initial concept of a nice validation tester for exchanges * adds some datahandler design * expand testing * more tests and fixes * minor end of day fix for bithumb * fixes implementation issues * more test coverage and improvements, but not sure if i should continue * fix more wrapper implementations * adds error type, more fixes * changes signature, fixes implementations * fixes more wrapper implementations * one more bit * more cleanup * WOW things work? * lintle 1/1337 * mini bump * fixes all linting * neaten * GetOrderInfo+ asset pair fixes+improvements * adds new websocket test * expand ws testing * fix bug, expand tests, improve implementation * code coverage of a lot of new codes * fixes everything * reverts accidental changes * minor fixes from reviewing code * removes Bitfinex cancelBatchOrder implementation * fixes dumb baby typo for babies * mini nit fixes * so many nits to address * addresses all the nits * Titlecase * switcheroo * removes websocket testing for now * fix appveyor, minor test fix * fixes typo, re-kindles killed kode * skip binance wrapper tests when running CI * expired context, huobi okx fixes * kodespull * fix ordering * time fix because why not * fix exmo, others * hopefully this fixes all of my life's problems * last thing today * huobi, more like hypotrophy * golangci-lint, more like mypooroldknee-splint * fix huobi times by removing them * should fix okx currency issues * blocks the application * adds last little contingency for pairs * addresses most nits and new problems * lovely fixed before seeing why okx sucks * fixes issues with okx websocket * the classic receieieivaier * lintle * adds test and fixes existing tests * expands error handling messages during setup * fixes dumb okx bugs introduced * quick fix for lint and exmo * fixes nixes * fix exmo deposit issue * lint * fixes issue with extra asset runs missing * fix surprise race * all the lint and merge fixes * fixes surprise bugs in OKx * fixes issues with times and chains * fixing all the merge stuff * merge fix * rm logs and a panic potential * lovely lint lament * an easy demonstration of scenario, but not of initial purpose * put it in the bin * Revert "put it in the bin" This reverts commit 15c6490f713233d43f10957367fcbf18e3818bdd. * re-add after immediate error popup * fix mini poor test design * okx okay * merge fixes * fixes issues discovered in lovely test * I FORGOT TO COMMIT THIS * nit fixaroonaboo * forgoetten test fix * revert old okx asset intrument work * fixes * revert problems I didnt understand. update bybit * fix merge bugs * test cleanup * further improvements * reshuffle and lint * rm redundant CI_TEST by rm the CI_TEST field that is redundant * path fix * move to its own section, dont run on 32 bit + appveyor * lint * fix lbank * address nits * let it rip * fix failing test time range * niteroo boogaloo * mod tidy, use common.SimpleTimeFormat
93 lines
2.3 KiB
Go
93 lines
2.3 KiB
Go
package archive
|
|
|
|
import (
|
|
"archive/zip"
|
|
"errors"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestUnZip(t *testing.T) {
|
|
tempDir := t.TempDir()
|
|
zipFile := filepath.Join("..", "..", "..", "testdata", "testdata.zip")
|
|
files, err := UnZip(zipFile, tempDir)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(files) != 2 {
|
|
t.Fatalf("expected 2 files to be extracted received: %v ", len(files))
|
|
}
|
|
|
|
zipFile = filepath.Join("..", "..", "..", "testdata", "zip-slip.zip")
|
|
_, err = UnZip(zipFile, tempDir)
|
|
if err == nil {
|
|
t.Fatal("Zip() expected to error due to ZipSlip detection but extracted successfully")
|
|
}
|
|
|
|
zipFile = filepath.Join("..", "..", "..", "testdata", "configtest.json")
|
|
_, err = UnZip(zipFile, tempDir)
|
|
if err == nil {
|
|
t.Fatal("Zip() expected to error due to invalid zipfile")
|
|
}
|
|
}
|
|
|
|
func TestZip(t *testing.T) {
|
|
tempDir := t.TempDir()
|
|
singleFile := filepath.Join("..", "..", "..", "testdata", "configtest.json")
|
|
outFile := filepath.Join(tempDir, "out.zip")
|
|
err := Zip(singleFile, outFile)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
o, err := UnZip(outFile, tempDir)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(o) != 1 {
|
|
t.Fatalf("expected 1 files to be extracted received: %v ", len(o))
|
|
}
|
|
|
|
folder := filepath.Join("..", "..", "..", "testdata", "http_mock")
|
|
outFolderZip := filepath.Join(tempDir, "out_folder.zip")
|
|
err = Zip(folder, outFolderZip)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
o, err = UnZip(outFolderZip, tempDir)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var found bool
|
|
for i := range o {
|
|
if filepath.Base(o[i]) == "binance.json" {
|
|
found = true
|
|
}
|
|
}
|
|
if !found {
|
|
t.Fatal("could not find file in zip")
|
|
}
|
|
|
|
if expected := 6; len(o) < expected {
|
|
t.Fatalf("expected at least %v files to be extracted, received: %v ", expected, len(o))
|
|
}
|
|
|
|
folder = filepath.Join("..", "..", "..", "testdata", "invalid_file.json")
|
|
outFolderZip = filepath.Join(tempDir, "invalid.zip")
|
|
err = Zip(folder, outFolderZip)
|
|
if err == nil {
|
|
t.Fatal("expected IsNotExistError on invalid file")
|
|
}
|
|
|
|
addFilesToZip = addFilesToZipTestWrapper
|
|
folder = filepath.Join("..", "..", "..", "testdata", "http_mock")
|
|
outFolderZip = filepath.Join(tempDir, "error_zip.zip")
|
|
err = Zip(folder, outFolderZip)
|
|
if err == nil {
|
|
t.Fatal("expected Zip() to fail due to invalid addFilesToZipTestWrapper()")
|
|
}
|
|
}
|
|
|
|
func addFilesToZipTestWrapper(_ *zip.Writer, _ string, _ bool) error {
|
|
return errors.New("error")
|
|
}
|