55import pytest
66
77from iib .web .models import (
8+ Request ,
89 RequestAdd ,
910 RequestMergeIndexImage ,
1011 RequestRegenerateBundle ,
1112 RequestRm ,
1213 RequestCreateEmptyIndex ,
1314)
14-
15+ from iib .common .pydantic_models import (
16+ AddPydanticModel ,
17+ RmPydanticModel ,
18+ MergeIndexImagePydanticModel ,
19+ RegenerateBundlePydanticModel ,
20+ CreateEmptyIndexPydanticModel ,
21+ )
1522
1623INITIAL_DB_REVISION = '274ba38408e8'
1724
@@ -25,19 +32,19 @@ def test_migrate_to_polymorphic_requests(app, auth_env, client, db):
2532 for i in range (total_requests ):
2633 request_class = random .choice ((RequestAdd , RequestRm ))
2734 if request_class == RequestAdd :
28- data = {
29- ' binary_image' : 'quay.io/namespace/binary_image:latest' ,
30- ' bundles' : [f'quay.io/namespace/bundle:{ i } ' ],
31- ' from_index' : f'quay.io/namespace/repo:{ i } ' ,
32- }
33- request = RequestAdd .from_json ( data )
35+ data = AddPydanticModel (
36+ binary_image = 'quay.io/namespace/binary_image:latest' ,
37+ bundles = [f'quay.io/namespace/bundle:{ i } ' ],
38+ from_index = f'quay.io/namespace/repo:{ i } ' ,
39+ )
40+ request = RequestAdd .from_json_replacement ( payload = data )
3441 elif request_class == RequestRm :
35- data = {
36- ' binary_image' : 'quay.io/namespace/binary_image:latest' ,
37- ' operators' : [f'operator-{ i } ' ],
38- ' from_index' : f'quay.io/namespace/repo:{ i } ' ,
39- }
40- request = RequestRm .from_json (data )
42+ data = RmPydanticModel (
43+ binary_image = 'quay.io/namespace/binary_image:latest' ,
44+ operators = [f'operator-{ i } ' ],
45+ from_index = f'quay.io/namespace/repo:{ i } ' ,
46+ )
47+ request = RequestRm .from_json_replacement (data )
4148
4249 if i % 5 == 0 :
4350 # Simulate failed request
@@ -63,26 +70,26 @@ def test_migrate_to_merge_index_endpoints(app, auth_env, client, db):
6370 for i in range (total_requests ):
6471 request_class = random .choice ((RequestAdd , RequestMergeIndexImage , RequestRm ))
6572 if request_class == RequestAdd :
66- data = {
67- ' binary_image' : 'quay.io/namespace/binary_image:latest' ,
68- ' bundles' : [f'quay.io/namespace/bundle:{ i } ' ],
69- ' from_index' : f'quay.io/namespace/repo:{ i } ' ,
70- }
71- request = RequestAdd .from_json (data )
73+ data = AddPydanticModel (
74+ binary_image = 'quay.io/namespace/binary_image:latest' ,
75+ bundles = [f'quay.io/namespace/bundle:{ i } ' ],
76+ from_index = f'quay.io/namespace/repo:{ i } ' ,
77+ )
78+ request = RequestAdd .from_json_replacement (data )
7279 elif request_class == RequestRm :
73- data = {
74- ' binary_image' : 'quay.io/namespace/binary_image:latest' ,
75- ' operators' : [f'operator-{ i } ' ],
76- ' from_index' : f'quay.io/namespace/repo:{ i } ' ,
77- }
78- request = RequestRm .from_json (data )
80+ data = RmPydanticModel (
81+ binary_image = 'quay.io/namespace/binary_image:latest' ,
82+ operators = [f'operator-{ i } ' ],
83+ from_index = f'quay.io/namespace/repo:{ i } ' ,
84+ )
85+ request = RequestRm .from_json_replacement (data )
7986 elif request_class == RequestMergeIndexImage :
80- data = {
81- ' source_from_index' : f'quay.io/namespace/repo:{ i } ' ,
82- ' target_index' : f'quay.io/namespace/repo:{ i } ' ,
83- ' binary_image' : 'quay.io/namespace/binary_image:latest' ,
84- }
85- request = RequestMergeIndexImage .from_json (data )
87+ data = MergeIndexImagePydanticModel (
88+ source_from_index = f'quay.io/namespace/repo:{ i } ' ,
89+ target_index = f'quay.io/namespace/repo:{ i } ' ,
90+ binary_image = 'quay.io/namespace/binary_image:latest' ,
91+ )
92+ request = RequestMergeIndexImage .from_json_replacement (data )
8693
8794 if i % 5 == 0 :
8895 # Simulate failed request
@@ -104,31 +111,35 @@ def test_abort_when_downgrading_from_regenerate_bundle_request(app, auth_env, cl
104111 # flask_login.current_user is used in Request*.from_json which requires a request context
105112 with app .test_request_context (environ_base = auth_env ):
106113 # Always add a RequestRegenerateBundle to ensure sufficient test data is available
107- data = {'from_bundle_image' : 'quay.io/namespace/bundle-image:latest' }
108- request = RequestRegenerateBundle .from_json (data )
114+ data = RegenerateBundlePydanticModel (
115+ from_bundle_image = 'quay.io/namespace/bundle-image:latest'
116+ )
117+ request = RequestRegenerateBundle .from_json_replacement (data )
109118 db .session .add (request )
110119
111120 # One request was already added, let's add the remaining ones
112121 for i in range (total_requests - 1 ):
113122 request_class = random .choice ((RequestAdd , RequestRm , RequestRegenerateBundle ))
114123 if request_class == RequestAdd :
115- data = {
116- ' binary_image' : 'quay.io/namespace/binary_image:latest' ,
117- ' bundles' : [f'quay.io/namespace/bundle:{ i } ' ],
118- ' from_index' : f'quay.io/namespace/repo:{ i } ' ,
119- }
120- request = RequestAdd .from_json (data )
124+ data = AddPydanticModel (
125+ binary_image = 'quay.io/namespace/binary_image:latest' ,
126+ bundles = [f'quay.io/namespace/bundle:{ i } ' ],
127+ from_index = f'quay.io/namespace/repo:{ i } ' ,
128+ )
129+ request = RequestAdd .from_json_replacement (data )
121130
122131 elif request_class == RequestRm :
123- data = {
124- ' binary_image' : 'quay.io/namespace/binary_image:latest' ,
125- ' operators' : [f'operator-{ i } ' ],
126- ' from_index' : f'quay.io/namespace/repo:{ i } ' ,
127- }
128- request = RequestRm .from_json (data )
132+ data = RmPydanticModel (
133+ binary_image = 'quay.io/namespace/binary_image:latest' ,
134+ operators = [f'operator-{ i } ' ],
135+ from_index = f'quay.io/namespace/repo:{ i } ' ,
136+ )
137+ request = RequestRm .from_json_replacement (data )
129138 else :
130- data = {'from_bundle_image' : 'quay.io/namespace/bundle-image:latest' }
131- request = RequestRegenerateBundle .from_json (data )
139+ data = RegenerateBundlePydanticModel (
140+ from_bundle_image = 'quay.io/namespace/bundle-image:latest'
141+ )
142+ request = RequestRegenerateBundle .from_json_replacement (data )
132143 db .session .add (request )
133144
134145 db .session .commit ()
@@ -148,35 +159,35 @@ def test_create_empty_index_image_request(app, auth_env, client, db):
148159 # which requires a request context
149160 with app .test_request_context (environ_base = auth_env ):
150161 # Generate some data to verify migration
151- data = {
152- ' from_index' : 'quay.io/namespace/index_image:latest' ,
153- ' binary_image' : 'quay.io/namespace/binary_image:latest' ,
154- }
155- request = RequestCreateEmptyIndex .from_json (data )
162+ data = CreateEmptyIndexPydanticModel (
163+ from_index = 'quay.io/namespace/index_image:latest' ,
164+ binary_image = 'quay.io/namespace/binary_image:latest' ,
165+ )
166+ request = RequestCreateEmptyIndex .from_json_replacement (data )
156167 db .session .add (request )
157168
158169 for i in range (total_requests ):
159170 request_class = random .choice ((RequestAdd , RequestRm , RequestCreateEmptyIndex ))
160171 if request_class == RequestAdd :
161- data = {
162- ' binary_image' : 'quay.io/namespace/binary_image:latest' ,
163- ' bundles' : [f'quay.io/namespace/bundle:{ i } ' ],
164- ' from_index' : f'quay.io/namespace/repo:{ i } ' ,
165- }
166- request = RequestAdd .from_json (data )
172+ data = AddPydanticModel (
173+ binary_image = 'quay.io/namespace/binary_image:latest' ,
174+ bundles = [f'quay.io/namespace/bundle:{ i } ' ],
175+ from_index = f'quay.io/namespace/repo:{ i } ' ,
176+ )
177+ request = RequestAdd .from_json_replacement (data )
167178 elif request_class == RequestRm :
168- data = {
169- ' binary_image' : 'quay.io/namespace/binary_image:latest' ,
170- ' operators' : [f'operator-{ i } ' ],
171- ' from_index' : f'quay.io/namespace/repo:{ i } ' ,
172- }
173- request = RequestRm .from_json (data )
179+ data = RmPydanticModel (
180+ binary_image = 'quay.io/namespace/binary_image:latest' ,
181+ operators = [f'operator-{ i } ' ],
182+ from_index = f'quay.io/namespace/repo:{ i } ' ,
183+ )
184+ request = RequestRm .from_json_replacement (data )
174185 elif request_class == RequestCreateEmptyIndex :
175- data = {
176- ' from_index' : f'quay.io/namespace/index_image:{ i } ' ,
177- ' binary_image' : 'quay.io/namespace/binary_image:latest' ,
178- }
179- request = RequestCreateEmptyIndex .from_json (data )
186+ data = CreateEmptyIndexPydanticModel (
187+ from_index = f'quay.io/namespace/index_image:{ i } ' ,
188+ binary_image = 'quay.io/namespace/binary_image:latest' ,
189+ )
190+ request = RequestCreateEmptyIndex .from_json_replacement (data )
180191
181192 if i % 5 == 0 :
182193 # Simulate failed request
0 commit comments