-
Notifications
You must be signed in to change notification settings - Fork 48
/
versionlock-list-manipulation.feature
224 lines (209 loc) · 5.63 KB
/
versionlock-list-manipulation.feature
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
Feature: Versionlock command can maintain versionlock.list file
Background: Set up versionlock infrastructure in the installroot
Given I create file "/etc/dnf/versionlock.toml" with
"""
"""
And I use repository "dnf-ci-fedora"
@dnf5
Scenario: Basic commands add/exclude/list/delete/clear for manipulation with versionlock.list file are working
When I execute dnf with args "install wget"
Then the exit code is 0
And Transaction is following
| Action | Package |
| install | wget-0:1.19.5-5.fc29.x86_64 |
# add command
When I execute dnf with args "versionlock add wget"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
"""
And stdout is
"""
Adding versionlock on "wget = 1.19.5-5.fc29".
"""
When I execute dnf with args "versionlock list"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
"""
And stdout matches line by line
"""
# Added by 'versionlock add' command on .*
Package name: wget
evr = 1.19.5-5.fc29
"""
# exclude command
When I execute dnf with args "versionlock exclude lame"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
"""
And stdout is
"""
Adding versionlock exclude on "lame = 3.100-4.fc29".
"""
When I execute dnf with args "versionlock list"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
"""
And stdout matches line by line
"""
# Added by 'versionlock add' command on .*
Package name: wget
evr = 1.19.5-5.fc29
# Added by 'versionlock exclude' command on .*
Package name: lame
evr != 3.100-4.fc29
"""
# delete command
When I execute dnf with args "versionlock delete wget"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
"""
And stdout matches line by line
"""
Deleting versionlock entry:
# Added by 'versionlock add' command on .*
Package name: wget
evr = 1.19.5-5.fc29
"""
When I execute dnf with args "versionlock list"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
"""
And stdout matches line by line
"""
# Added by 'versionlock exclude' command on .*
Package name: lame
evr != 3.100-4.fc29
"""
# delete command on excluded package
When I execute dnf with args "versionlock delete lame"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
"""
And stdout matches line by line
"""
Deleting versionlock entry:
# Added by 'versionlock exclude' command on .*
Package name: lame
evr != 3.100-4.fc29
"""
When I execute dnf with args "versionlock list"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
"""
And stdout is empty
# clear command
When I execute dnf with args "versionlock add wget"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
"""
And stdout is
"""
Adding versionlock on "wget = 1.19.5-5.fc29".
"""
When I execute dnf with args "versionlock clear"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
"""
And stdout is empty
When I execute dnf with args "versionlock list"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
"""
And stdout is empty
@dnf5
@bz1785563
Scenario: versionlock will print just necessary information with -q option
Given I use repository "dnf-ci-fedora"
Given I execute dnf with args "versionlock add wget"
When I execute dnf with args "-q versionlock list"
Then the exit code is 0
And stdout matches line by line
"""
# Added by 'versionlock add' command on .*
Package name: wget
evr = 1.19.5-5.fc29
"""
@dnf5
@bz1782052
@bz1845270
Scenario: Prevent duplicate entries in versionlock.list
Given I use repository "dnf-ci-fedora"
And I successfully execute dnf with args "install wget"
And I successfully execute dnf with args "versionlock add wget"
When I execute dnf with args "versionlock add wget"
Then the exit code is 0
And stderr is
"""
<REPOSYNC>
Package "wget" is already locked.
"""
# @dnf5
# currently the conflict between add and exclude is not detected.
# The reason is that we need multiple entries for the same name
# to handle locking version-1 OR version-2
@bz1782052
Scenario: Prevent conflicting entries in versionlock.list
Given I use repository "dnf-ci-fedora"
And I successfully execute dnf with args "install wget"
And I successfully execute dnf with args "versionlock add wget"
When I execute dnf with args "versionlock exclude wget"
Then the exit code is 1
And stderr is
"""
<REPOSYNC>
Error: Package wget-0:1.19.5-5.fc29.* is already locked
"""
@dnf5
@bz2013324
Scenario: I can exclude mutliple packages when one is already excluded
Given I use repository "dnf-ci-fedora"
And I successfully execute dnf with args "versionlock exclude wget"
When I execute dnf with args "versionlock exclude abcde wget"
Then the exit code is 0
And stdout is
"""
Adding versionlock exclude on "abcde = 2.9.2-1.fc29".
"""
And stderr is
"""
<REPOSYNC>
Package "wget" is already excluded.
"""
@dnf5
@bz2013324
Scenario: I can lock mutliple packages when one is already locked
Given I use repository "dnf-ci-fedora"
And I successfully execute dnf with args "versionlock add wget"
When I execute dnf with args "versionlock add abcde wget"
Then the exit code is 0
And stdout is
"""
Adding versionlock on "abcde = 2.9.2-1.fc29".
"""
And stderr is
"""
<REPOSYNC>
Package "wget" is already locked.
"""