SQLStore: Introduce new test infra (#101676)
This creates the new testinfra. It is not used anywhere yet.
This commit is contained in:
@@ -61,7 +61,7 @@ func ProvideService(cfg *setting.Cfg,
|
||||
// by that mimic the functionality of how it was functioning before
|
||||
// xorm's changes above.
|
||||
xorm.DefaultPostgresSchema = ""
|
||||
s, err := newSQLStore(cfg, nil, features, migrations, bus, tracer)
|
||||
s, err := newStore(cfg, nil, features, migrations, bus, tracer, false)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -87,25 +87,21 @@ func ProvideServiceForTests(t sqlutil.ITestDB, cfg *setting.Cfg, features featur
|
||||
func NewSQLStoreWithoutSideEffects(cfg *setting.Cfg,
|
||||
features featuremgmt.FeatureToggles,
|
||||
bus bus.Bus, tracer tracing.Tracer) (*SQLStore, error) {
|
||||
return newSQLStore(cfg, nil, features, nil, bus, tracer)
|
||||
return newStore(cfg, nil, features, nil, bus, tracer, true)
|
||||
}
|
||||
|
||||
func newSQLStore(cfg *setting.Cfg, engine *xorm.Engine, features featuremgmt.FeatureToggles,
|
||||
migrations registry.DatabaseMigrator, bus bus.Bus, tracer tracing.Tracer, opts ...InitTestDBOpt) (*SQLStore, error) {
|
||||
func newStore(cfg *setting.Cfg, engine *xorm.Engine, features featuremgmt.FeatureToggles,
|
||||
migrations registry.DatabaseMigrator, bus bus.Bus, tracer tracing.Tracer,
|
||||
skipEnsureDefaultOrgAndUser bool) (*SQLStore, error) {
|
||||
ss := &SQLStore{
|
||||
cfg: cfg,
|
||||
log: log.New("sqlstore"),
|
||||
skipEnsureDefaultOrgAndUser: false,
|
||||
skipEnsureDefaultOrgAndUser: skipEnsureDefaultOrgAndUser,
|
||||
migrations: migrations,
|
||||
bus: bus,
|
||||
tracer: tracer,
|
||||
features: features,
|
||||
}
|
||||
for _, opt := range opts {
|
||||
if !opt.EnsureDefaultOrgAndUser {
|
||||
ss.skipEnsureDefaultOrgAndUser = true
|
||||
}
|
||||
}
|
||||
|
||||
if err := ss.initEngine(engine); err != nil {
|
||||
return nil, fmt.Errorf("%v: %w", "failed to connect to database", err)
|
||||
@@ -600,9 +596,17 @@ func TestMain(m *testing.M) {
|
||||
engine.DatabaseTZ = time.UTC
|
||||
engine.TZLocation = time.UTC
|
||||
|
||||
skipEnsureDefaultOrgAndUser := false
|
||||
for _, opt := range opts {
|
||||
if !opt.EnsureDefaultOrgAndUser {
|
||||
skipEnsureDefaultOrgAndUser = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
tracer := tracing.InitializeTracerForTest()
|
||||
bus := bus.ProvideBus(tracer)
|
||||
testSQLStore, err = newSQLStore(cfg, engine, features, migration, bus, tracer, opts...)
|
||||
testSQLStore, err = newStore(cfg, engine, features, migration, bus, tracer, skipEnsureDefaultOrgAndUser)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user