exchanges: Improve TestMain usage (#1946)

* exchanges: Improve TestMain usage

* exchanges: Further cleanups

* exchanges/kucoin: update TestProcessOrderbook to use test context

* refactor: rename SetRunning to SetRunningURL for clarity across exchanges
This commit is contained in:
Adrian Gallagher
2025-06-25 13:02:47 +10:00
committed by GitHub
parent 61a3d765ee
commit ebcbfab358
38 changed files with 214 additions and 460 deletions

View File

@@ -9,37 +9,20 @@ import (
"os"
"testing"
"github.com/thrasher-corp/gocryptotrader/config"
"github.com/thrasher-corp/gocryptotrader/exchanges/sharedtestvalues"
testexch "github.com/thrasher-corp/gocryptotrader/internal/testing/exchange"
)
var mockTests = false
func TestMain(m *testing.M) {
cfg := config.GetConfig()
err := cfg.LoadConfig("../../testdata/configtest.json", true)
if err != nil {
log.Fatal("Bitstamp load config error", err)
b = new(Bitstamp)
if err := testexch.Setup(b); err != nil {
log.Fatalf("Bitstamp Setup error: %s", err)
}
bitstampConfig, err := cfg.GetExchangeConfig("Bitstamp")
if err != nil {
log.Fatal("Bitstamp Setup() init error", err)
}
bitstampConfig.API.AuthenticatedSupport = true
if apiKey != "" {
bitstampConfig.API.Credentials.Key = apiKey
}
if apiSecret != "" {
bitstampConfig.API.Credentials.Secret = apiSecret
}
if customerID != "" {
bitstampConfig.API.Credentials.ClientID = customerID
}
b.SetDefaults()
b.Websocket = sharedtestvalues.NewTestWebsocket()
err = b.Setup(bitstampConfig)
if err != nil {
log.Fatal("Bitstamp setup error", err)
if apiKey != "" && apiSecret != "" {
b.API.AuthenticatedSupport = true
b.SetCredentials(apiKey, apiSecret, customerID, "", "", "")
}
log.Printf(sharedtestvalues.LiveTesting, b.Name)
os.Exit(m.Run())

View File

@@ -9,59 +9,20 @@ import (
"os"
"testing"
"github.com/thrasher-corp/gocryptotrader/config"
"github.com/thrasher-corp/gocryptotrader/exchanges/mock"
"github.com/thrasher-corp/gocryptotrader/exchanges/sharedtestvalues"
testexch "github.com/thrasher-corp/gocryptotrader/internal/testing/exchange"
)
const mockfile = "../../testdata/http_mock/bitstamp/bitstamp.json"
var mockTests = true
func TestMain(m *testing.M) {
cfg := config.GetConfig()
err := cfg.LoadConfig("../../testdata/configtest.json", true)
if err != nil {
log.Fatal("Bitstamp load config error", err)
}
bitstampConfig, err := cfg.GetExchangeConfig("Bitstamp")
if err != nil {
log.Fatal("Bitstamp Setup() init error", err)
}
b.SkipAuthCheck = true
bitstampConfig.API.AuthenticatedSupport = true
if apiKey != "" {
bitstampConfig.API.Credentials.Key = apiKey
}
if apiSecret != "" {
bitstampConfig.API.Credentials.Secret = apiSecret
}
if customerID != "" {
bitstampConfig.API.Credentials.ClientID = customerID
}
b.SetDefaults()
b.Websocket = sharedtestvalues.NewTestWebsocket()
err = b.Setup(bitstampConfig)
if err != nil {
log.Fatal("Bitstamp setup error", err)
b = new(Bitstamp)
if err := testexch.Setup(b); err != nil {
log.Fatalf("Bitstamp Setup error: %s", err)
}
serverDetails, newClient, err := mock.NewVCRServer(mockfile)
if err != nil {
log.Fatalf("Mock server error %s", err)
if err := testexch.MockHTTPInstance(b, "api"); err != nil {
log.Fatalf("Bitstamp MockHTTPInstance error: %s", err)
}
err = b.SetHTTPClient(newClient)
if err != nil {
log.Fatalf("Mock server error %s", err)
}
endpointMap := b.API.Endpoints.GetURLMap()
for k := range endpointMap {
err = b.API.Endpoints.SetRunning(k, serverDetails+"/api")
if err != nil {
log.Fatal(err)
}
}
log.Printf(sharedtestvalues.MockTesting, b.Name)
os.Exit(m.Run())
}

68482
exchanges/bitstamp/testdata/http.json vendored Normal file

File diff suppressed because it is too large Load Diff