@@ -18,10 +18,13 @@ type RpmSuite struct {
18
18
client * zestwrapper.RpmZest
19
19
tangy tangy.Tangy
20
20
domainName string
21
+ remoteHref string
22
+ repoHref string
21
23
}
22
24
23
25
const testRepoName = "rpm modular"
24
- const testRepoURL = "https://fixtures.pulpproject.org/rpm-modular/"
26
+ const testRepoURL = "https://jlsherrill.fedorapeople.org/fake-repos/revision/one/"
27
+ const testRepoURLTwo = "https://jlsherrill.fedorapeople.org/fake-repos/revision/two/"
25
28
26
29
func (r * RpmSuite ) CreateTestRepository (t * testing.T ) {
27
30
domainName := RandStringBytes (10 )
@@ -33,13 +36,27 @@ func (r *RpmSuite) CreateTestRepository(t *testing.T) {
33
36
repoHref , remoteHref , err := r .client .CreateRepository (domainName , testRepoName , testRepoURL )
34
37
require .NoError (t , err )
35
38
39
+ r .repoHref = repoHref
40
+ r .remoteHref = remoteHref
41
+
36
42
syncTask , err := r .client .SyncRpmRepository (repoHref , remoteHref )
37
43
require .NoError (t , err )
38
44
39
45
_ , err = r .client .PollTask (syncTask )
40
46
require .NoError (t , err )
41
47
}
42
48
49
+ func (r * RpmSuite ) UpdateTestRepository (t * testing.T , url string ) {
50
+ err := r .client .UpdateRemote (r .remoteHref , url )
51
+ require .NoError (t , err )
52
+
53
+ syncTask , err := r .client .SyncRpmRepository (r .repoHref , r .remoteHref )
54
+ require .NoError (t , err )
55
+
56
+ _ , err = r .client .PollTask (syncTask )
57
+ require .NoError (t , err )
58
+ }
59
+
43
60
func TestRpmSuite (t * testing.T ) {
44
61
s := config .Get ().Server
45
62
rpmZest := zestwrapper .NewRpmZest (context .Background (), s )
@@ -51,7 +68,7 @@ func TestRpmSuite(t *testing.T) {
51
68
Port : dbConfig .Port ,
52
69
User : dbConfig .User ,
53
70
Password : dbConfig .Password ,
54
- }, tangy.Logger {Enabled : false })
71
+ }, tangy.Logger {})
55
72
require .NoError (t , err )
56
73
57
74
r := RpmSuite {}
@@ -64,12 +81,51 @@ func TestRpmSuite(t *testing.T) {
64
81
func (r * RpmSuite ) TestRpmRepositoryVersionPackageSearch () {
65
82
resp , err := r .client .GetRpmRepositoryByName (r .domainName , testRepoName )
66
83
require .NoError (r .T (), err )
67
- versionHref := resp .LatestVersionHref
68
- require .NotNil (r .T (), versionHref )
84
+ firstVersionHref := resp .LatestVersionHref
85
+ require .NotNil (r .T (), firstVersionHref )
86
+
87
+ // Search first repository version
88
+ search , err := r .tangy .RpmRepositoryVersionPackageSearch (context .Background (), []string {* firstVersionHref }, "bea" , 100 )
89
+ assert .NoError (r .T (), err )
90
+ assert .Equal (r .T (), search [0 ].Name , "bear" )
91
+ search , err = r .tangy .RpmRepositoryVersionPackageSearch (context .Background (), []string {* firstVersionHref }, "cam" , 100 )
92
+ assert .NoError (r .T (), err )
93
+ assert .Empty (r .T (), search )
94
+
95
+ // Create second repository version
96
+ r .UpdateTestRepository (r .T (), testRepoURLTwo )
97
+ resp , err = r .client .GetRpmRepositoryByName (r .domainName , testRepoName )
98
+ require .NoError (r .T (), err )
99
+ secondVersionHref := resp .LatestVersionHref
100
+ require .NotNil (r .T (), secondVersionHref )
101
+
102
+ // Search second repository version, should have new package
103
+ search , err = r .tangy .RpmRepositoryVersionPackageSearch (context .Background (), []string {* secondVersionHref }, "bea" , 100 )
104
+ assert .NoError (r .T (), err )
105
+ assert .Equal (r .T (), search [0 ].Name , "bear" )
106
+ search , err = r .tangy .RpmRepositoryVersionPackageSearch (context .Background (), []string {* secondVersionHref }, "cam" , 100 )
107
+ assert .NoError (r .T (), err )
108
+ assert .Equal (r .T (), search [0 ].Name , "camel" )
109
+
110
+ // Re-search the first version, should be the same
111
+ search , err = r .tangy .RpmRepositoryVersionPackageSearch (context .Background (), []string {* firstVersionHref }, "bea" , 100 )
112
+ assert .NoError (r .T (), err )
113
+ assert .Equal (r .T (), search [0 ].Name , "bear" )
114
+ search , err = r .tangy .RpmRepositoryVersionPackageSearch (context .Background (), []string {* firstVersionHref }, "cam" , 100 )
115
+ assert .NoError (r .T (), err )
116
+ assert .Empty (r .T (), search )
117
+
118
+ // Search both versions
119
+ search , err = r .tangy .RpmRepositoryVersionPackageSearch (context .Background (), []string {* firstVersionHref , * secondVersionHref }, "a" , 100 )
120
+ assert .NoError (r .T (), err )
121
+ assert .Len (r .T (), search , 2 )
122
+ assert .Equal (r .T (), search [0 ].Name , "bear" )
123
+ assert .Equal (r .T (), search [1 ].Name , "camel" )
69
124
70
- search , err := r .tangy .RpmRepositoryVersionPackageSearch (context .Background (), []string {* versionHref }, "ninja" )
125
+ // Test search limit
126
+ search , err = r .tangy .RpmRepositoryVersionPackageSearch (context .Background (), []string {* secondVersionHref }, "a" , 1 )
71
127
assert .NoError (r .T (), err )
72
- assert .Equal (r .T (), search [ 0 ]. Name , "ninja-build" )
128
+ assert .Len (r .T (), search , 1 )
73
129
}
74
130
75
131
func RandStringBytes (n int ) string {
0 commit comments