From 983aaabdb26a17011b5fdd0db34882e9682292bb Mon Sep 17 00:00:00 2001 From: Keepers Date: Fri, 31 Mar 2023 17:47:34 -0600 Subject: [PATCH] restrict sharepoint test backups to test folders (#2969) To avoid over-production of data, and thus longer CI times, any sharepoint integration test that can scope library usage down to only the "test" folders should do so. --- #### Does this PR need a docs update or release note? - [x] :no_entry: No #### Type of change - [x] :robot: Supportability/Tests #### Test Plan - [x] :zap: Unit test - [x] :green_heart: E2E --- src/cli/backup/sharepoint_e2e_test.go | 3 +- .../connector/data_collections_test.go | 9 ++-- .../connector/graph_connector_test.go | 41 ++++++++++--------- .../operations/backup_integration_test.go | 3 +- src/pkg/selectors/testdata/sharepoint.go | 9 ++++ 5 files changed, 39 insertions(+), 26 deletions(-) create mode 100644 src/pkg/selectors/testdata/sharepoint.go diff --git a/src/cli/backup/sharepoint_e2e_test.go b/src/cli/backup/sharepoint_e2e_test.go index 94289a7d5..dd5556e9e 100644 --- a/src/cli/backup/sharepoint_e2e_test.go +++ b/src/cli/backup/sharepoint_e2e_test.go @@ -22,6 +22,7 @@ import ( "github.com/alcionai/corso/src/pkg/control" "github.com/alcionai/corso/src/pkg/repository" "github.com/alcionai/corso/src/pkg/selectors" + "github.com/alcionai/corso/src/pkg/selectors/testdata" "github.com/alcionai/corso/src/pkg/storage" ) @@ -161,7 +162,7 @@ func (suite *BackupDeleteSharePointE2ESuite) SetupSuite() { // some tests require an existing backup sel := selectors.NewSharePointBackup(sites) - sel.Include(sel.LibraryFolders(selectors.Any())) + sel.Include(testdata.SharePointBackupFolderScope(sel)) suite.backupOp, err = suite.repo.NewBackup(ctx, sel.Selector) require.NoError(t, err, clues.ToCore(err)) diff --git a/src/internal/connector/data_collections_test.go b/src/internal/connector/data_collections_test.go index 00d16c882..1d4b55373 100644 --- a/src/internal/connector/data_collections_test.go +++ b/src/internal/connector/data_collections_test.go @@ -18,6 +18,7 @@ import ( "github.com/alcionai/corso/src/pkg/fault" "github.com/alcionai/corso/src/pkg/path" "github.com/alcionai/corso/src/pkg/selectors" + "github.com/alcionai/corso/src/pkg/selectors/testdata" ) // --------------------------------------------------------------------------- @@ -168,7 +169,7 @@ func (suite *ConnectorDataCollectionIntegrationSuite) TestDataCollections_invali name: "Invalid sharepoint backup site", getSelector: func(t *testing.T) selectors.Selector { sel := selectors.NewSharePointBackup(owners) - sel.Include(sel.LibraryFolders(selectors.Any())) + sel.Include(testdata.SharePointBackupFolderScope(sel)) return sel.Selector }, }, @@ -194,7 +195,7 @@ func (suite *ConnectorDataCollectionIntegrationSuite) TestDataCollections_invali name: "missing sharepoint backup site", getSelector: func(t *testing.T) selectors.Selector { sel := selectors.NewSharePointBackup(owners) - sel.Include(sel.LibraryFolders(selectors.Any())) + sel.Include(testdata.SharePointBackupFolderScope(sel)) sel.DiscreteOwner = "" return sel.Selector }, @@ -238,7 +239,7 @@ func (suite *ConnectorDataCollectionIntegrationSuite) TestSharePointDataCollecti name: "Libraries", getSelector: func() selectors.Selector { sel := selectors.NewSharePointBackup(selSites) - sel.Include(sel.LibraryFolders(selectors.Any())) + sel.Include(testdata.SharePointBackupFolderScope(sel)) return sel.Selector }, }, @@ -374,7 +375,7 @@ func (suite *ConnectorCreateSharePointCollectionIntegrationSuite) TestCreateShar ) sel := selectors.NewSharePointBackup(siteIDs) - sel.Include(sel.Lists(selectors.Any(), selectors.PrefixMatch())) + sel.Include(sel.Lists(selectors.Any())) cols, excludes, err := gc.ProduceBackupCollections( ctx, diff --git a/src/internal/connector/graph_connector_test.go b/src/internal/connector/graph_connector_test.go index 2a5fbc1ac..dc8115134 100644 --- a/src/internal/connector/graph_connector_test.go +++ b/src/internal/connector/graph_connector_test.go @@ -1115,27 +1115,28 @@ func (suite *GraphConnectorIntegrationSuite) TestBackup_CreatesPrefixCollections path.FilesCategory.String(), }, }, - // SharePoint lists and pages don't seem to check selectors as expected. - //{ - // name: "SharePoint", - // resource: Sites, - // selectorFunc: func(t *testing.T) selectors.Selector { - // sel := selectors.NewSharePointBackup([]string{tester.M365SiteID(t)}) - // sel.Include( - // sel.Pages([]string{selectors.NoneTgt}), - // sel.Lists([]string{selectors.NoneTgt}), - // sel.Libraries([]string{selectors.NoneTgt}), - // ) + { + name: "SharePoint", + resource: Sites, + selectorFunc: func(t *testing.T) selectors.Selector { + sel := selectors.NewSharePointBackup([]string{tester.M365SiteID(t)}) + sel.Include( + sel.LibraryFolders([]string{selectors.NoneTgt}), + // not yet in use + // sel.Pages([]string{selectors.NoneTgt}), + // sel.Lists([]string{selectors.NoneTgt}), + ) - // return sel.Selector - // }, - // service: path.SharePointService, - // categories: []string{ - // path.PagesCategory.String(), - // path.ListsCategory.String(), - // path.LibrariesCategory.String(), - // }, - //}, + return sel.Selector + }, + service: path.SharePointService, + categories: []string{ + path.LibrariesCategory.String(), + // not yet in use + // path.PagesCategory.String(), + // path.ListsCategory.String(), + }, + }, } for _, test := range table { diff --git a/src/internal/operations/backup_integration_test.go b/src/internal/operations/backup_integration_test.go index 2de42ee31..1da1ac6ff 100644 --- a/src/internal/operations/backup_integration_test.go +++ b/src/internal/operations/backup_integration_test.go @@ -40,6 +40,7 @@ import ( "github.com/alcionai/corso/src/pkg/fault" "github.com/alcionai/corso/src/pkg/path" "github.com/alcionai/corso/src/pkg/selectors" + "github.com/alcionai/corso/src/pkg/selectors/testdata" "github.com/alcionai/corso/src/pkg/store" ) @@ -1608,7 +1609,7 @@ func (suite *BackupOpIntegrationSuite) TestBackup_Run_sharePoint() { sel = selectors.NewSharePointBackup([]string{suite.site}) ) - sel.Include(sel.LibraryFolders(selectors.Any())) + sel.Include(testdata.SharePointBackupFolderScope(sel)) bo, _, kw, _, _, closer := prepNewTestBackupOp(t, ctx, mb, sel.Selector, control.Toggles{}) defer closer() diff --git a/src/pkg/selectors/testdata/sharepoint.go b/src/pkg/selectors/testdata/sharepoint.go new file mode 100644 index 000000000..6051c2fda --- /dev/null +++ b/src/pkg/selectors/testdata/sharepoint.go @@ -0,0 +1,9 @@ +package testdata + +import "github.com/alcionai/corso/src/pkg/selectors" + +// SharePointBackupFolderScope is the standard folder scope that should be used +// in integration backups with sharepoint. +func SharePointBackupFolderScope(sel *selectors.SharePointBackup) []selectors.SharePointScope { + return sel.LibraryFolders([]string{"test"}, selectors.PrefixMatch()) +}