@@ -176,79 +176,66 @@ func NewFedTest(t *testing.T, originConfig string) (ft *FedTest) {
176176 require .NoError (t , err )
177177
178178 // Read in any config we may have set
179- var originConf interface {}
180- if originConfig != "" {
181- viper .SetConfigType ("yaml" )
182- err = viper .MergeConfig (strings .NewReader (originConfig ))
183- require .NoError (t , err , "error reading config" )
184-
185- err := yaml .Unmarshal ([]byte (originConfig ), & originConf )
186- require .NoError (t , err , "error unmarshalling into interface" )
187-
188- confMap := originConf .(map [string ]interface {})
189-
190- originRaw , exists := confMap ["Origin" ]
191-
192- if exists {
193- originMap := originRaw .(map [string ]interface {})
194-
195- // Override the test directory from the config file with our temp directory
196- if exportsRaw , ok := originMap ["Exports" ]; ok {
197- for i , item := range exportsRaw .([]interface {}) {
198- originDir , err := os .MkdirTemp ("" , fmt .Sprintf ("Export%d" , i ))
199- assert .NoError (t , err )
200- t .Cleanup (func () {
201- err := os .RemoveAll (originDir )
202- require .NoError (t , err )
203- })
204-
205- exportMap := item .(map [string ]interface {})
206- exportMap ["StoragePrefix" ] = originDir
207-
208- // Change the permissions of the temporary origin directory
209- permissions = os .FileMode (0755 )
210- err = os .Chmod (originDir , permissions )
211- require .NoError (t , err )
179+ var importedConf any
180+ viper .SetConfigType ("yaml" )
181+ err = viper .MergeConfig (strings .NewReader (originConfig ))
182+ require .NoError (t , err , "error reading config" )
212183
213- // Change ownership on the temporary origin directory so files can be uploaded
214- uinfo , err := config .GetDaemonUserInfo ()
215- require .NoError (t , err )
216- require .NoError (t , os .Chown (originDir , uinfo .Uid , uinfo .Gid ))
184+ err = yaml .Unmarshal ([]byte (originConfig ), & importedConf )
185+ require .NoError (t , err , "error unmarshalling into interface" )
217186
218- // Start off with a Hello World file we can use for testing in each of our exports
219- err = os .WriteFile (filepath .Join (originDir , "hello_world.txt" ), []byte ("Hello, World!" ), os .FileMode (0644 ))
220- require .NoError (t , err )
221- }
222- } else {
223- originDir , err := os .MkdirTemp ("" , fmt .Sprintf ("Export%s" , "test" ))
187+ confMap := importedConf .(map [string ]any )
188+
189+ if originRaw , exists := confMap ["Origin" ]; exists {
190+ originMap := originRaw .(map [string ]any )
191+
192+ overrideTemp := func (storageDir string , exportMap map [string ]any ) {
193+ exportMap ["StoragePrefix" ] = storageDir
194+
195+ // Change the permissions of the temporary origin directory
196+ permissions = os .FileMode (0755 )
197+ err = os .Chmod (storageDir , permissions )
198+ require .NoError (t , err )
199+
200+ // Change ownership on the temporary origin directory so files can be uploaded
201+ uinfo , err := config .GetDaemonUserInfo ()
202+ require .NoError (t , err )
203+ require .NoError (t , os .Chown (storageDir , uinfo .Uid , uinfo .Gid ))
204+
205+ // Start off with a Hello World file we can use for testing in each of our exports
206+ err = os .WriteFile (filepath .Join (storageDir , "hello_world.txt" ), []byte ("Hello, World!" ), os .FileMode (0644 ))
207+ require .NoError (t , err )
208+ }
209+
210+ // Override the test directory from the config file with our temp directory
211+ if exportsRaw , exists := originMap ["Exports" ]; exists {
212+ for i , item := range exportsRaw .([]any ) {
213+ originDir , err := os .MkdirTemp ("" , fmt .Sprintf ("Export%d" , i ))
224214 assert .NoError (t , err )
225215 t .Cleanup (func () {
226216 err := os .RemoveAll (originDir )
227217 require .NoError (t , err )
228218 })
229219
230- originMap [ "StoragePrefix" ] = originDir
231-
232- permissions = os . FileMode ( 0755 )
233- err = os . Chmod ( originDir , permissions )
234- require . NoError ( t , err )
235-
236- // Change ownership on the temporary origin directory so files can be uploaded
237- uinfo , err := config . GetDaemonUserInfo ( )
220+ exportMap := item .( map [ string ] any )
221+ overrideTemp ( originDir , exportMap )
222+ }
223+ } else {
224+ originDir , err := os . MkdirTemp ( "" , fmt . Sprintf ( "Export%s" , "test" ) )
225+ assert . NoError ( t , err )
226+ t . Cleanup ( func () {
227+ err := os . RemoveAll ( originDir )
238228 require .NoError (t , err )
239- require . NoError ( t , os . Chown ( originDir , uinfo . Uid , uinfo . Gid ) )
229+ } )
240230
241- // Start off with a Hello World file we can use for testing in the StoragePrefix
242- err = os .WriteFile (filepath .Join (originDir , "hello_world.txt" ), []byte ("Hello, World!" ), os .FileMode (0644 ))
243- require .NoError (t , err )
244- }
231+ overrideTemp (originDir , originMap )
245232 }
246233 }
247234
248235 confDir := t .TempDir ()
249236 outputPath := filepath .Join (confDir , "tempfile_*.yaml" )
250237
251- outputData , err := yaml .Marshal (& originConf )
238+ outputData , err := yaml .Marshal (& importedConf )
252239 require .NoError (t , err , "error marshalling struct into yaml format" )
253240
254241 err = os .WriteFile (outputPath , outputData , 0644 )
0 commit comments