From 279626c2b35e2ced126c19a5685a0384dacc1d96 Mon Sep 17 00:00:00 2001 From: Andrew Dewar Date: Fri, 15 Nov 2024 17:57:18 -0500 Subject: [PATCH] Add tests for module streams --- internal/test/integration/rpm_test.go | 45 +++++++++++++++++++++++++++ pkg/tangy/rpm.go | 2 +- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/internal/test/integration/rpm_test.go b/internal/test/integration/rpm_test.go index e7a1cc6..2a8b7ec 100644 --- a/internal/test/integration/rpm_test.go +++ b/internal/test/integration/rpm_test.go @@ -31,6 +31,8 @@ const testRepoURL = "https://rverdile.fedorapeople.org/dummy-repos/comps/repo1/" const testRepoURLTwo = "https://rverdile.fedorapeople.org/dummy-repos/comps/repo2/" const testRepoNameWithErrata = "multiple-errata" const testRepoURLWithErrata = "https://stephenw.fedorapeople.org/fakerepos/multiple_errata/" +const rpmNameWithModule = "rpm-with-modules" +const rpmUrlWithModule = "https://fixtures.pulpproject.org/rpm-with-modules-modified/" func (r *RpmSuite) CreateTestRepository(t *testing.T, repoName string, repoUrl string) { _, err := r.client.LookupOrCreateDomain(r.domainName) @@ -372,6 +374,49 @@ func (r *RpmSuite) TestRpmRepositoryVersionErrataListSort() { assert.Equal(r.T(), total, 6) } +func (r *RpmSuite) TestRpmRepositoryVersionModuleStreams() { + resp, err := r.client.GetRpmRepositoryByName(r.domainName, testRepoName) + require.NoError(r.T(), err) + firstVersionHref := resp.LatestVersionHref + require.NotNil(r.T(), firstVersionHref) + + // expect empty + singleList, total, err := r.tangy.RpmRepositoryVersionModuleStreams(context.Background(), []string{*firstVersionHref}, []string{}, "", tangy.PageOptions{}) + require.NoError(r.T(), err) + assert.Empty(r.T(), singleList) + assert.Equal(r.T(), total, 0) + + r.CreateTestRepository(r.T(), rpmNameWithModule, rpmUrlWithModule) + resp, err = r.client.GetRpmRepositoryByName(r.domainName, rpmNameWithModule) + require.NoError(r.T(), err) + require.NotNil(r.T(), resp.LatestVersionHref) + firstVersionHref = resp.LatestVersionHref + + // Expect populated + singleList, total, err = r.tangy.RpmRepositoryVersionModuleStreams(context.Background(), []string{*firstVersionHref}, []string{}, "", tangy.PageOptions{}) + require.NoError(r.T(), err) + assert.NotEmpty(r.T(), singleList) + assert.Equal(r.T(), 3, total) + + // Test search + singleList, total, err = r.tangy.RpmRepositoryVersionModuleStreams(context.Background(), []string{*firstVersionHref}, []string{}, "Duck", tangy.PageOptions{}) + require.NoError(r.T(), err) + assert.NotEmpty(r.T(), singleList) + assert.Equal(r.T(), 1, total) + + // Test package name list filter + singleList, total, err = r.tangy.RpmRepositoryVersionModuleStreams(context.Background(), []string{*firstVersionHref}, []string{"walrus", "kangaroo"}, "", tangy.PageOptions{}) + require.NoError(r.T(), err) + assert.NotEmpty(r.T(), singleList) + assert.Equal(r.T(), 2, total) + + // Confirm no error on not found rpm name + singleList, total, err = r.tangy.RpmRepositoryVersionModuleStreams(context.Background(), []string{*firstVersionHref}, []string{"banana"}, "", tangy.PageOptions{}) + require.NoError(r.T(), err) + assert.Empty(r.T(), singleList) + assert.Equal(r.T(), 0, total) +} + func (r *RpmSuite) TestRpmRepositoryVersionPackageListNameFilter() { resp, err := r.client.GetRpmRepositoryByName(r.domainName, testRepoName) require.NoError(r.T(), err) diff --git a/pkg/tangy/rpm.go b/pkg/tangy/rpm.go index 0b053ef..d2f4663 100644 --- a/pkg/tangy/rpm.go +++ b/pkg/tangy/rpm.go @@ -416,7 +416,7 @@ func (t *tangyImpl) RpmRepositoryVersionModuleStreams(ctx context.Context, hrefs var countTotal int - err = conn.QueryRow(ctx, countQueryOpen+innerUnion+filter+")", args).Scan(&countTotal) + err = conn.QueryRow(ctx, countQueryOpen+innerUnion+filter+") as list", args).Scan(&countTotal) if err != nil { if err == pgx.ErrNoRows {