Skip to content

Commit

Permalink
Merge pull request #1097 from kian99/test-refactoring
Browse files Browse the repository at this point in the history
Refactored creation of DB objects and permissions in tests
  • Loading branch information
kian99 authored Nov 15, 2023
2 parents e6c3209 + 244bd90 commit 150f1a7
Show file tree
Hide file tree
Showing 13 changed files with 207 additions and 211 deletions.
4 changes: 2 additions & 2 deletions internal/db/cloud_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ controllers:
region: test-region
priority: 1
`)
env.PopulateDB(c, *s.Database, nil)
env.PopulateDB(c, *s.Database)

cr, err := s.Database.FindRegion(ctx, "testp", "test-region")
c.Assert(err, qt.IsNil)
Expand Down Expand Up @@ -363,7 +363,7 @@ controllers:
region: test-region-2
priority: 1
`)
env.PopulateDB(c, *s.Database, nil)
env.PopulateDB(c, *s.Database)

cl := dbmodel.Cloud{
Name: "test-cloud-1",
Expand Down
2 changes: 1 addition & 1 deletion internal/db/cloudcredential_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ func (s *dbSuite) TestForEachCloudCredential(c *qt.C) {
env := jimmtest.ParseEnvironment(c, forEachCloudCredentialEnv)
err := s.Database.Migrate(ctx, false)
c.Assert(err, qt.IsNil)
env.PopulateDB(c, *s.Database, nil)
env.PopulateDB(c, *s.Database)

for _, test := range forEachCloudCredentialTests {
c.Run(test.name, func(c *qt.C) {
Expand Down
6 changes: 3 additions & 3 deletions internal/db/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ func (s *dbSuite) TestForEachController(c *qt.C) {
c.Assert(err, qt.Equals, nil)

env := jimmtest.ParseEnvironment(c, testForEachControllerEnv)
env.PopulateDB(c, *s.Database, nil)
env.PopulateDB(c, *s.Database)

testError := errors.E("test error")
err = s.Database.ForEachController(ctx, func(controller *dbmodel.Controller) error {
Expand Down Expand Up @@ -426,9 +426,9 @@ func (s *dbSuite) TestForEachControllerModel(c *qt.C) {
c.Assert(err, qt.Equals, nil)

env := jimmtest.ParseEnvironment(c, testForEachControllerModelEnv)
env.PopulateDB(c, *s.Database, nil)
env.PopulateDB(c, *s.Database)

ctl := env.Controller("test").DBObject(c, *s.Database, nil)
ctl := env.Controller("test").DBObject(c, *s.Database)
testError := errors.E("test error")
err = s.Database.ForEachControllerModel(ctx, &ctl, func(_ *dbmodel.Model) error {
return testError
Expand Down
4 changes: 2 additions & 2 deletions internal/db/model_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -537,7 +537,7 @@ func (s *dbSuite) TestForEachModel(c *qt.C) {
c.Assert(err, qt.Equals, nil)

env := jimmtest.ParseEnvironment(c, testForEachModelEnv)
env.PopulateDB(c, *s.Database, nil)
env.PopulateDB(c, *s.Database)

testError := errors.E("test error")
err = s.Database.ForEachModel(ctx, func(m *dbmodel.Model) error {
Expand Down Expand Up @@ -623,7 +623,7 @@ func (s *dbSuite) TestGetModelsByUUID(c *qt.C) {
c.Assert(err, qt.Equals, nil)

env := jimmtest.ParseEnvironment(c, testGetModelsByUUIDEnv)
env.PopulateDB(c, *s.Database, nil)
env.PopulateDB(c, *s.Database)

modelUUIDs := []string{
"00000002-0000-0000-0000-000000000001",
Expand Down
5 changes: 2 additions & 3 deletions internal/jimm/applicationoffer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2685,7 +2685,6 @@ func TestListApplicationOffers(t *testing.T) {
err = db.Migrate(ctx, false)
c.Assert(err, qt.IsNil)
env := jimmtest.ParseEnvironment(c, listApplicationsTestEnv)
env.PopulateDB(c, db, client)

j := &jimm.JIMM{
UUID: uuid.NewString(),
Expand Down Expand Up @@ -2840,7 +2839,7 @@ func TestListApplicationOffers(t *testing.T) {
},
},
}

env.PopulateDBAndPermissions(c, j.ResourceTag(), db, client)
tuples := []openfga.Tuple{{
Object: ofganames.ConvertTag(names.NewUserTag("alice@external")),
Relation: ofganames.AdministratorRelation,
Expand Down Expand Up @@ -2881,7 +2880,7 @@ func TestListApplicationOffers(t *testing.T) {
err = client.AddRelation(context.Background(), tuples...)
c.Assert(err, qt.IsNil)

u := env.User("alice@external").DBObject(c, db, client)
u := env.User("alice@external").DBObject(c, db)
_, err = j.ListApplicationOffers(ctx, openfga.NewUser(&u, client))
c.Assert(err, qt.ErrorMatches, `at least one filter must be specified`)

Expand Down
30 changes: 14 additions & 16 deletions internal/jimm/cloud_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -613,10 +613,9 @@ func TestAddHostedCloud(t *testing.T) {
c.Assert(err, qt.IsNil)

env := jimmtest.ParseEnvironment(c, addHostedCloudTestEnv)
env.PopulateDB(c, j.Database, client)
env.AddJIMMRelations(c, j.ResourceTag(), j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

dbUser := env.User(test.username).DBObject(c, j.Database, client)
dbUser := env.User(test.username).DBObject(c, j.Database)
user := openfga.NewUser(&dbUser, client)

err = j.AddHostedCloud(ctx, user, names.NewCloudTag(test.cloudName), test.cloud, false)
Expand Down Expand Up @@ -894,10 +893,9 @@ func TestAddCloudToController(t *testing.T) {
c.Assert(err, qt.IsNil)

env := jimmtest.ParseEnvironment(c, addHostedCloudTestEnv)
env.PopulateDB(c, j.Database, client)
env.AddJIMMRelations(c, j.ResourceTag(), j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

dbUser := env.User(test.username).DBObject(c, j.Database, client)
dbUser := env.User(test.username).DBObject(c, j.Database)
user := openfga.NewUser(&dbUser, client)

// Note that the force flag has no effect here because the Juju responses are mocked.
Expand Down Expand Up @@ -1054,9 +1052,9 @@ func TestGrantCloudAccess(t *testing.T) {
}
err = j.Database.Migrate(ctx, false)
c.Assert(err, qt.IsNil)
env.PopulateDB(c, j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

dbUser := env.User(tt.username).DBObject(c, j.Database, client)
dbUser := env.User(tt.username).DBObject(c, j.Database)
user := openfga.NewUser(&dbUser, client)

err = j.GrantCloudAccess(ctx, user, names.NewCloudTag(tt.cloud), names.NewUserTag(tt.targetUsername), tt.access)
Expand Down Expand Up @@ -1354,7 +1352,7 @@ func TestRevokeCloudAccess(t *testing.T) {

err = j.Database.Migrate(ctx, false)
c.Assert(err, qt.IsNil)
env.PopulateDB(c, j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

if tt.extraInitialTuples != nil && len(tt.extraInitialTuples) > 0 {
err = client.AddRelation(ctx, tt.extraInitialTuples...)
Expand All @@ -1369,7 +1367,7 @@ func TestRevokeCloudAccess(t *testing.T) {
}
}

dbUser := env.User(tt.username).DBObject(c, j.Database, client)
dbUser := env.User(tt.username).DBObject(c, j.Database)
user := openfga.NewUser(&dbUser, client)

err = j.RevokeCloudAccess(ctx, user, names.NewCloudTag(tt.cloud), names.NewUserTag(tt.targetUsername), tt.access)
Expand Down Expand Up @@ -1507,9 +1505,9 @@ func TestRemoveCloud(t *testing.T) {
}
err = j.Database.Migrate(ctx, false)
c.Assert(err, qt.IsNil)
env.PopulateDB(c, j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

dbUser := env.User(test.username).DBObject(c, j.Database, client)
dbUser := env.User(test.username).DBObject(c, j.Database)
user := openfga.NewUser(&dbUser, client)

err = j.RemoveCloud(ctx, user, names.NewCloudTag(test.cloud))
Expand Down Expand Up @@ -1747,9 +1745,9 @@ func TestUpdateCloud(t *testing.T) {
}
err = j.Database.Migrate(ctx, false)
c.Assert(err, qt.IsNil)
env.PopulateDB(c, j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

dbUser := env.User(test.username).DBObject(c, j.Database, client)
dbUser := env.User(test.username).DBObject(c, j.Database)
user := openfga.NewUser(&dbUser, client)

tag := names.NewCloudTag(test.cloud)
Expand Down Expand Up @@ -1941,9 +1939,9 @@ func TestRemoveFromControllerCloud(t *testing.T) {
}
err = j.Database.Migrate(ctx, false)
c.Assert(err, qt.IsNil)
env.PopulateDB(c, j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

dbUser := env.User(test.username).DBObject(c, j.Database, client)
dbUser := env.User(test.username).DBObject(c, j.Database)
user := openfga.NewUser(&dbUser, client)

err = j.RemoveCloudFromController(ctx, user, test.controllerName, names.NewCloudTag(test.cloud))
Expand Down
20 changes: 9 additions & 11 deletions internal/jimm/cloudcredential_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -834,9 +834,8 @@ users:

err = j.Database.Migrate(ctx, false)
c.Assert(err, qt.IsNil)
env.PopulateDB(c, j.Database, client)
env.AddJIMMRelations(c, j.ResourceTag(), j.Database, client)
u := env.User("alice@external").DBObject(c, j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)
u := env.User("alice@external").DBObject(c, j.Database)
user := openfga.NewUser(&u, client)
_, err = j.UpdateCloudCredential(ctx, user, jimm.UpdateCloudCredentialArgs{
CredentialTag: names.NewCloudCredentialTag("test-cloud/bob@external/test"),
Expand Down Expand Up @@ -1481,8 +1480,8 @@ func TestForEachUserCloudCredential(t *testing.T) {
}
err = j.Database.Migrate(ctx, false)
c.Assert(err, qt.IsNil)
env.PopulateDB(c, j.Database, client)
u := env.User(test.username).DBObject(c, j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)
u := env.User(test.username).DBObject(c, j.Database)

var credentials []string
if test.f == nil {
Expand Down Expand Up @@ -1601,14 +1600,13 @@ func TestGetCloudCredentialAttributes(t *testing.T) {
}
err = j.Database.Migrate(ctx, false)
c.Assert(err, qt.IsNil)
env.PopulateDB(c, j.Database, client)
env.AddJIMMRelations(c, j.ResourceTag(), j.Database, client)
u := env.User("bob@external").DBObject(c, j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)
u := env.User("bob@external").DBObject(c, j.Database)
userBob := openfga.NewUser(&u, client)
cred, err := j.GetCloudCredential(ctx, userBob, names.NewCloudCredentialTag("test-cloud/bob@external/cred-1"))
c.Assert(err, qt.IsNil)

u = env.User(test.username).DBObject(c, j.Database, client)
u = env.User(test.username).DBObject(c, j.Database)
userTest := openfga.NewUser(&u, client)
attr, redacted, err := j.GetCloudCredentialAttributes(ctx, userTest, cred, test.hidden)
if test.expectError != "" {
Expand Down Expand Up @@ -1654,9 +1652,9 @@ func TestCloudCredentialAttributeStore(t *testing.T) {
regions:
- name: test-region
`)
env.PopulateDB(c, j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

u := env.User("alice@external").DBObject(c, j.Database, client)
u := env.User("alice@external").DBObject(c, j.Database)
user := openfga.NewUser(&u, client)
args := jimm.UpdateCloudCredentialArgs{
CredentialTag: names.NewCloudCredentialTag("test/alice@external/cred-1"),
Expand Down
31 changes: 13 additions & 18 deletions internal/jimm/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ func TestEarliestControllerVersion(t *testing.T) {
c.Assert(err, qt.IsNil)

env := jimmtest.ParseEnvironment(c, testEarliestControllerVersionEnv)
env.PopulateDB(c, j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

v, err := j.EarliestControllerVersion(ctx)
c.Assert(err, qt.Equals, nil)
Expand Down Expand Up @@ -913,10 +913,9 @@ func TestImportModel(t *testing.T) {
c.Assert(err, qt.IsNil)

env := jimmtest.ParseEnvironment(c, testImportModelEnv)
env.PopulateDB(c, j.Database, client)
env.AddJIMMRelations(c, j.ResourceTag(), j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

dbUser := env.User(test.user).DBObject(c, j.Database, client)
dbUser := env.User(test.user).DBObject(c, j.Database)
user := openfga.NewUser(&dbUser, client)
err = j.ImportModel(ctx, user, test.controllerName, names.NewModelTag(test.modelUUID), test.newOwner)
if test.expectedError == "" {
Expand Down Expand Up @@ -1014,10 +1013,9 @@ func TestSetControllerConfig(t *testing.T) {
c.Assert(err, qt.IsNil)

env := jimmtest.ParseEnvironment(c, testControllerConfigEnv)
env.PopulateDB(c, j.Database, client)
env.AddJIMMRelations(c, j.ResourceTag(), j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

dbUser := env.User(test.user).DBObject(c, j.Database, client)
dbUser := env.User(test.user).DBObject(c, j.Database)
user := openfga.NewUser(&dbUser, client)
err = j.SetControllerConfig(ctx, user, test.args)
if test.expectedError == "" {
Expand Down Expand Up @@ -1090,13 +1088,12 @@ func TestGetControllerConfig(t *testing.T) {
c.Assert(err, qt.IsNil)

env := jimmtest.ParseEnvironment(c, testImportModelEnv)
env.PopulateDB(c, j.Database, client)
env.AddJIMMRelations(c, j.ResourceTag(), j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

dbSuperuser := env.User("alice@external").DBObject(c, j.Database, client)
dbSuperuser := env.User("alice@external").DBObject(c, j.Database)
superuser := openfga.NewUser(&dbSuperuser, client)

dbUser := env.User(test.user).DBObject(c, j.Database, client)
dbUser := env.User(test.user).DBObject(c, j.Database)
user := openfga.NewUser(&dbUser, client)

err = j.SetControllerConfig(ctx, superuser, jujuparams.ControllerConfigSet{
Expand Down Expand Up @@ -1241,10 +1238,9 @@ func TestUpdateMigratedModel(t *testing.T) {
c.Assert(err, qt.IsNil)

env := jimmtest.ParseEnvironment(c, testUpdateMigratedModelEnv)
env.PopulateDB(c, j.Database, client)
env.AddJIMMRelations(c, j.ResourceTag(), j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

dbUser := env.User(test.user).DBObject(c, j.Database, client)
dbUser := env.User(test.user).DBObject(c, j.Database)
user := openfga.NewUser(&dbUser, client)

err = j.UpdateMigratedModel(ctx, user, test.model, test.targetController)
Expand Down Expand Up @@ -1295,10 +1291,9 @@ func TestGetControllerAccess(t *testing.T) {
c.Assert(err, qt.IsNil)

env := jimmtest.ParseEnvironment(c, testGetControllerAccessEnv)
env.PopulateDB(c, j.Database, client)
env.AddJIMMRelations(c, j.ResourceTag(), j.Database, client)
env.PopulateDBAndPermissions(c, j.ResourceTag(), j.Database, client)

dbUser := env.User("alice@external").DBObject(c, j.Database, client)
dbUser := env.User("alice@external").DBObject(c, j.Database)
alice := openfga.NewUser(&dbUser, client)

access, err := j.GetJimmControllerAccess(ctx, alice, names.NewUserTag("alice@external"))
Expand All @@ -1313,7 +1308,7 @@ func TestGetControllerAccess(t *testing.T) {
c.Assert(err, qt.IsNil)
c.Check(access, qt.Equals, "login")

dbUser = env.User("bob@external").DBObject(c, j.Database, client)
dbUser = env.User("bob@external").DBObject(c, j.Database)
alice = openfga.NewUser(&dbUser, client)
access, err = j.GetJimmControllerAccess(ctx, alice, names.NewUserTag("bob@external"))
c.Assert(err, qt.IsNil)
Expand Down
Loading

0 comments on commit 150f1a7

Please sign in to comment.