@@ -207,6 +207,58 @@ func TestBuildAndUploadWithAWSMock(t *testing.T) {
207207 assert .Equal (t , "fake-img-raw\n " , fa .uploadAndRegisterRead .String ())
208208}
209209
210+ func TestBuildAndUploadFedoraWithAWSMock (t * testing.T ) {
211+ if testing .Short () {
212+ t .Skip ("manifest generation takes a while" )
213+ }
214+ if ! hasDepsolveDnf () {
215+ t .Skip ("no osbuild-depsolve-dnf binary found" )
216+ }
217+
218+ var regionName , bucketName , amiName string
219+ var fa fakeAwsUploader
220+ var uploadOpts * awscloud.UploaderOptions
221+ restore := main .MockAwscloudNewUploader (func (region string , bucket string , ami string , opts * awscloud.UploaderOptions ) (cloud.Uploader , error ) {
222+ regionName = region
223+ bucketName = bucket
224+ amiName = ami
225+ uploadOpts = opts
226+ return & fa , nil
227+ })
228+ defer restore ()
229+
230+ outputDir := t .TempDir ()
231+ fakeOsbuildScript := makeFakeOsbuildScript ()
232+ testutil .MockCommand (t , "osbuild" , fakeOsbuildScript )
233+
234+ var fakeStdout bytes.Buffer
235+ restore = main .MockOsStdout (& fakeStdout )
236+ defer restore ()
237+
238+ restore = main .MockOsArgs ([]string {
239+ "build" ,
240+ "--output-dir" , outputDir ,
241+ "--aws-region=aws-region-1" ,
242+ "--aws-bucket=aws-bucket-2" ,
243+ "--aws-ami-name=aws-ami-3" ,
244+ "server-ami" ,
245+ "--distro=fedora-42" ,
246+ })
247+ defer restore ()
248+
249+ err := main .Run ()
250+ require .NoError (t , err )
251+
252+ assert .Equal (t , regionName , "aws-region-1" )
253+ assert .Equal (t , bucketName , "aws-bucket-2" )
254+ assert .Equal (t , amiName , "aws-ami-3" )
255+ expectedBootMode := platform .BOOT_HYBRID
256+ assert .Equal (t , & awscloud.UploaderOptions {BootMode : & expectedBootMode , TargetArch : arch .Current ()}, uploadOpts )
257+ assert .Equal (t , 1 , fa .checkCalls )
258+ assert .Equal (t , 1 , fa .uploadAndRegisterCalls )
259+ assert .Equal (t , "fake-img-raw\n " , fa .uploadAndRegisterRead .String ())
260+ }
261+
210262func TestBuildAmiButNotUpload (t * testing.T ) {
211263 if testing .Short () {
212264 t .Skip ("manifest generation takes a while" )
0 commit comments