From 86c5efa3ad0c459c7e5b4bfe8f5a61434fada372 Mon Sep 17 00:00:00 2001 From: lash Date: Wed, 8 Jan 2025 22:27:19 +0000 Subject: [PATCH] Rehabilitate tests --- cmd/africastalking/main.go | 16 +++++++++------- cmd/async/main.go | 17 ++++++++++------- cmd/http/main.go | 17 ++++++++++------- cmd/main.go | 16 +++++++++------- devtools/store/generate/main.go | 2 +- initializers/load.go | 10 +++++++--- internal/storage/storage_service.go | 11 ++++++----- internal/testutil/engine.go | 3 ++- menutraversal_test/menu_traversal_test.go | 3 +-- 9 files changed, 55 insertions(+), 40 deletions(-) diff --git a/cmd/africastalking/main.go b/cmd/africastalking/main.go index 92be768..ee86856 100644 --- a/cmd/africastalking/main.go +++ b/cmd/africastalking/main.go @@ -12,9 +12,9 @@ import ( "syscall" "git.defalsify.org/vise.git/engine" + "git.defalsify.org/vise.git/lang" "git.defalsify.org/vise.git/logging" "git.defalsify.org/vise.git/resource" - testdataloader "github.com/peteole/testdata-loader" "git.grassecon.net/urdt/ussd/config" "git.grassecon.net/urdt/ussd/initializers" @@ -27,14 +27,13 @@ import ( var ( logg = logging.NewVanilla().WithDomain("AfricasTalking").WithContextKey("at-session-id") - baseDir = testdataloader.GetBasePath() scriptDir = path.Join("services", "registration") build = "dev" menuSeparator = ": " ) func init() { - initializers.LoadEnvVariables(baseDir) + initializers.LoadEnvVariables() } func main() { @@ -43,8 +42,6 @@ func main() { var connStr string var resourceDir string var size uint - var database string - var dbSchema string var engineDebug bool var host string var port uint @@ -75,8 +72,13 @@ func main() { logg.Infof("start command", "build", build, "conn", connData, "resourcedir", resourceDir, "outputsize", size) ctx := context.Background() - ctx = context.WithValue(ctx, "Database", database) - ctx = context.WithValue(ctx, "Schema", dbSchema) + ln, err := lang.LanguageFromCode(config.DefaultLanguage) + if err != nil { + fmt.Fprintf(os.Stderr, "default language set error: %v", err) + os.Exit(1) + } + ctx = context.WithValue(ctx, "Language", ln) + pfp := path.Join(scriptDir, "pp.csv") cfg := engine.Config{ diff --git a/cmd/async/main.go b/cmd/async/main.go index f9feff5..22d8c11 100644 --- a/cmd/async/main.go +++ b/cmd/async/main.go @@ -10,9 +10,9 @@ import ( "syscall" "git.defalsify.org/vise.git/engine" + "git.defalsify.org/vise.git/lang" "git.defalsify.org/vise.git/logging" "git.defalsify.org/vise.git/resource" - testdataloader "github.com/peteole/testdata-loader" "git.grassecon.net/urdt/ussd/config" "git.grassecon.net/urdt/ussd/initializers" @@ -24,13 +24,12 @@ import ( var ( logg = logging.NewVanilla() - baseDir = testdataloader.GetBasePath() scriptDir = path.Join("services", "registration") menuSeparator = ": " ) func init() { - initializers.LoadEnvVariables(baseDir) + initializers.LoadEnvVariables() } type asyncRequestParser struct { @@ -53,8 +52,6 @@ func main() { var sessionId string var resourceDir string var size uint - var database string - var dbSchema string var engineDebug bool var host string var port uint @@ -86,8 +83,14 @@ func main() { logg.Infof("start command", "conn", connData, "resourcedir", resourceDir, "outputsize", size, "sessionId", sessionId) ctx := context.Background() - ctx = context.WithValue(ctx, "Database", database) - ctx = context.WithValue(ctx, "Schema", dbSchema) + + ln, err := lang.LanguageFromCode(config.DefaultLanguage) + if err != nil { + fmt.Fprintf(os.Stderr, "default language set error: %v", err) + os.Exit(1) + } + ctx = context.WithValue(ctx, "Language", ln) + pfp := path.Join(scriptDir, "pp.csv") cfg := engine.Config{ diff --git a/cmd/http/main.go b/cmd/http/main.go index 153f33f..96e3933 100644 --- a/cmd/http/main.go +++ b/cmd/http/main.go @@ -12,9 +12,9 @@ import ( "syscall" "git.defalsify.org/vise.git/engine" + "git.defalsify.org/vise.git/lang" "git.defalsify.org/vise.git/logging" "git.defalsify.org/vise.git/resource" - testdataloader "github.com/peteole/testdata-loader" "git.grassecon.net/urdt/ussd/config" "git.grassecon.net/urdt/ussd/initializers" @@ -27,13 +27,12 @@ import ( var ( logg = logging.NewVanilla() - baseDir = testdataloader.GetBasePath() scriptDir = path.Join("services", "registration") menuSeparator = ": " ) func init() { - initializers.LoadEnvVariables(baseDir) + initializers.LoadEnvVariables() } func main() { @@ -42,8 +41,6 @@ func main() { var connStr string var resourceDir string var size uint - var database string - var dbSchema string var engineDebug bool var host string var port uint @@ -74,8 +71,14 @@ func main() { logg.Infof("start command", "conn", connData, "resourcedir", resourceDir, "outputsize", size) ctx := context.Background() - ctx = context.WithValue(ctx, "Database", database) - ctx = context.WithValue(ctx, "Schema", dbSchema) + + ln, err := lang.LanguageFromCode(config.DefaultLanguage) + if err != nil { + fmt.Fprintf(os.Stderr, "default language set error: %v", err) + os.Exit(1) + } + ctx = context.WithValue(ctx, "Language", ln) + pfp := path.Join(scriptDir, "pp.csv") cfg := engine.Config{ diff --git a/cmd/main.go b/cmd/main.go index de36bf2..f030dbb 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -16,18 +16,16 @@ import ( "git.grassecon.net/urdt/ussd/internal/handlers" "git.grassecon.net/urdt/ussd/internal/storage" "git.grassecon.net/urdt/ussd/remote" - testdataloader "github.com/peteole/testdata-loader" ) var ( logg = logging.NewVanilla() - baseDir = testdataloader.GetBasePath() scriptDir = path.Join("services", "registration") menuSeparator = ": " ) func init() { - initializers.LoadEnvVariables(baseDir) + initializers.LoadEnvVariables() } // TODO: external script automatically generate language handler list from select language vise code OR consider dynamic menu generation script possibility @@ -37,8 +35,6 @@ func main() { var connStr string var size uint var sessionId string - var database string - var dbSchema string var engineDebug bool var resourceDir string var err error @@ -73,8 +69,14 @@ func main() { ctx := context.Background() ctx = context.WithValue(ctx, "SessionId", sessionId) - ctx = context.WithValue(ctx, "Database", database) - ctx = context.WithValue(ctx, "Schema", dbSchema) + + ln, err := lang.LanguageFromCode(config.DefaultLanguage) + if err != nil { + fmt.Fprintf(os.Stderr, "default language set error: %v", err) + os.Exit(1) + } + ctx = context.WithValue(ctx, "Language", ln) + pfp := path.Join(scriptDir, "pp.csv") cfg := engine.Config{ diff --git a/devtools/store/generate/main.go b/devtools/store/generate/main.go index 58a9808..c421d1a 100644 --- a/devtools/store/generate/main.go +++ b/devtools/store/generate/main.go @@ -23,7 +23,7 @@ var ( ) func init() { - initializers.LoadEnvVariables(baseDir) + initializers.LoadEnvVariables() } func main() { diff --git a/initializers/load.go b/initializers/load.go index 4cbeb0e..fc61746 100644 --- a/initializers/load.go +++ b/initializers/load.go @@ -9,9 +9,13 @@ import ( "github.com/joho/godotenv" ) -func LoadEnvVariables(baseDir string) { - envDir := path.Join(baseDir, ".env") - err := godotenv.Load(envDir) +func LoadEnvVariables() { + LoadEnvVariablesPath(".") +} + +func LoadEnvVariablesPath(dir string) { + fp := path.Join(dir, ".env") + err := godotenv.Load(fp) if err != nil { log.Fatal("Error loading .env file", err) } diff --git a/internal/storage/storage_service.go b/internal/storage/storage_service.go index 5fb73ce..c94f17c 100644 --- a/internal/storage/storage_service.go +++ b/internal/storage/storage_service.go @@ -73,11 +73,12 @@ func (ms *MenuStorageService) getOrCreateDb(ctx context.Context, existingDb db.D } - if database == "postgres" { - connStr := BuildConnStr() - - // Ensure the schema exists - err = ensureSchemaExists(ctx, connStr, schema) + connStr := ms.conn.String() + dbTyp := ms.conn.DbType() + if dbTyp == DBTYPE_POSTGRES { + newDb = postgres.NewPgDb() + } else if dbTyp == DBTYPE_GDBM { + err = ms.ensureDbDir() if err != nil { return nil, fmt.Errorf("failed to ensure schema exists: %w", err) } diff --git a/internal/testutil/engine.go b/internal/testutil/engine.go index f5c503c..678b345 100644 --- a/internal/testutil/engine.go +++ b/internal/testutil/engine.go @@ -23,13 +23,14 @@ import ( var ( baseDir = testdataloader.GetBasePath() logg = logging.NewVanilla() + baseDir = testdataloader.GetBasePath() scriptDir = path.Join(baseDir, "services", "registration") selectedDatabase = "" selectedDbSchema = "" ) func init() { - initializers.LoadEnvVariables(baseDir) + initializers.LoadEnvVariablesPath(baseDir) } // SetDatabase updates the database used by TestEngine diff --git a/menutraversal_test/menu_traversal_test.go b/menutraversal_test/menu_traversal_test.go index db4586a..4003641 100644 --- a/menutraversal_test/menu_traversal_test.go +++ b/menutraversal_test/menu_traversal_test.go @@ -12,7 +12,6 @@ import ( "regexp" "testing" - "git.grassecon.net/urdt/ussd/internal/storage" "git.grassecon.net/urdt/ussd/internal/testutil" "git.grassecon.net/urdt/ussd/internal/testutil/driver" "github.com/gofrs/uuid" @@ -106,7 +105,7 @@ func TestMain(m *testing.M) { defer func() { if *database == "postgres" { ctx := context.Background() - connStr := storage.BuildConnStr() + connStr := "postgres://" //storage.BuildConnStr() dbConn, err := pgxpool.New(ctx, connStr) if err != nil { log.Fatalf("Failed to connect to database for cleanup: %v", err)