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

#### Type of change

- [x] 🤖 Supportability/Tests

#### Test Plan

- [x]  Unit test
- [x] 💚 E2E
This commit is contained in:
Keepers 2023-03-31 17:47:34 -06:00 committed by GitHub
parent b81a527c10
commit 983aaabdb2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 39 additions and 26 deletions

View File

@ -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))

View File

@ -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,

View File

@ -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 {

View File

@ -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()

View File

@ -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())
}