github.com/tuhaihe/gpbackup@v1.0.3/integration/predata_acl_create_test.go (about) 1 package integration 2 3 import ( 4 "github.com/tuhaihe/gp-common-go-libs/structmatcher" 5 "github.com/tuhaihe/gp-common-go-libs/testhelper" 6 "github.com/tuhaihe/gpbackup/backup" 7 "github.com/tuhaihe/gpbackup/testutils" 8 9 . "github.com/onsi/ginkgo/v2" 10 . "github.com/onsi/gomega" 11 ) 12 13 var _ = Describe("backup integration create statement tests", func() { 14 BeforeEach(func() { 15 tocfile, backupfile = testutils.InitializeTestTOC(buffer, "predata") 16 testutils.SkipIfBefore6(connectionPool) 17 }) 18 Describe("PrintDefaultPrivilegesStatements", func() { 19 It("create default privileges for a table", func() { 20 privs := []backup.ACL{{Grantee: "", Select: true}, testutils.DefaultACLForType("testrole", "TABLE")} 21 defaultPrivileges := []backup.DefaultPrivileges{{Schema: "", Privileges: privs, ObjectType: "r", Owner: "testrole"}} 22 23 backup.PrintDefaultPrivilegesStatements(backupfile, tocfile, defaultPrivileges) 24 25 testhelper.AssertQueryRuns(connectionPool, buffer.String()) 26 defer testhelper.AssertQueryRuns(connectionPool, "ALTER DEFAULT PRIVILEGES FOR ROLE testrole REVOKE ALL ON TABLES FROM PUBLIC;") 27 28 resultPrivileges := backup.GetDefaultPrivileges(connectionPool) 29 30 Expect(resultPrivileges).To(HaveLen(1)) 31 structmatcher.ExpectStructsToMatchExcluding(&defaultPrivileges[0], &resultPrivileges[0], "Oid") 32 }) 33 It("create default privileges for a sequence with grant option in schema", func() { 34 privs := []backup.ACL{{Grantee: "testrole", SelectWithGrant: true}} 35 defaultPrivileges := []backup.DefaultPrivileges{{Schema: "", Privileges: privs, ObjectType: "S", Owner: "testrole"}} 36 37 backup.PrintDefaultPrivilegesStatements(backupfile, tocfile, defaultPrivileges) 38 39 testhelper.AssertQueryRuns(connectionPool, buffer.String()) 40 // Both of these statements are required to remove the entry from the pg_default_acl catalog table, otherwise it will pollute other tests 41 defer testhelper.AssertQueryRuns(connectionPool, "ALTER DEFAULT PRIVILEGES FOR ROLE testrole GRANT ALL ON SEQUENCES TO testrole;") 42 defer testhelper.AssertQueryRuns(connectionPool, "ALTER DEFAULT PRIVILEGES FOR ROLE testrole REVOKE ALL ON SEQUENCES FROM testrole;") 43 44 resultPrivileges := backup.GetDefaultPrivileges(connectionPool) 45 46 Expect(resultPrivileges).To(HaveLen(1)) 47 structmatcher.ExpectStructsToMatchExcluding(&defaultPrivileges[0], &resultPrivileges[0], "Oid") 48 }) 49 }) 50 })