@@ -217,6 +217,22 @@ public void DeterminePrimaryScriptFile_MultipleFiles_RunFilePresent()
217217 Assert . Equal ( @"c:\functions\Run.csx" , scriptFile ) ;
218218 }
219219
220+ [ Fact ]
221+ public void DeterminePrimaryScriptFile_MultipleFiles_InitFilePresent ( )
222+ {
223+ var functionConfig = new JObject ( ) ;
224+ var files = new Dictionary < string , MockFileData >
225+ {
226+ { @"c:\functions\__init__.py" , new MockFileData ( string . Empty ) } ,
227+ { @"c:\functions\helloworld.py" , new MockFileData ( string . Empty ) } ,
228+ { @"c:\functions\test.txt" , new MockFileData ( string . Empty ) }
229+ } ;
230+ var fileSystem = new MockFileSystem ( files ) ;
231+
232+ string scriptFile = HostFunctionMetadataProvider . DeterminePrimaryScriptFile ( null , @"c:\functions" , fileSystem ) ;
233+ Assert . Equal ( @"c:\functions\__init__.py" , scriptFile ) ;
234+ }
235+
220236 [ Fact ]
221237 public void DeterminePrimaryScriptFile_SingleFile ( )
222238 {
@@ -245,35 +261,37 @@ public void DeterminePrimaryScriptFile_MultipleFiles_RunTrumpsIndex()
245261 Assert . Equal ( @"c:\functions\run.js" , scriptFile ) ;
246262 }
247263
248- [ Fact ]
249- public void DeterminePrimaryScriptFile_MultipleFiles_IndexFilePresent ( )
264+ [ Theory ]
265+ [ InlineData ( "index.js" , @"c:\functions\index.js" ) ]
266+ [ InlineData ( "__init__.py" , @"c:\functions\__init__.py" ) ]
267+ public void DeterminePrimaryScriptFile_MultipleFiles_DefaultFilePresent ( string scriptFileProperty , string expectedScriptFilePath )
250268 {
251269 var files = new Dictionary < string , MockFileData >
252270 {
253- { @"c:\functions\index.js" , new MockFileData ( string . Empty ) } ,
271+ { expectedScriptFilePath , new MockFileData ( string . Empty ) } ,
254272 { @"c:\functions\test.txt" , new MockFileData ( string . Empty ) }
255273 } ;
256274 var fileSystem = new MockFileSystem ( files ) ;
257275
258- string scriptFile = HostFunctionMetadataProvider . DeterminePrimaryScriptFile ( "index.js" , @"c:\functions" , fileSystem ) ;
259- Assert . Equal ( @"c:\functions\index.js" , scriptFile ) ;
276+ string scriptFile = HostFunctionMetadataProvider . DeterminePrimaryScriptFile ( scriptFileProperty , @"c:\functions" , fileSystem ) ;
277+ Assert . Equal ( expectedScriptFilePath , scriptFile ) ;
260278 }
261279
262280 [ Theory ]
263281 [ InlineData ( "run.py" , @"c:\functions\run.py" ) ]
264282 [ InlineData ( "queueTrigger.py" , @"c:\functions\queueTrigger.py" ) ]
265283 [ InlineData ( "helper.py" , @"c:\functions\helper.py" ) ]
266284 [ InlineData ( "test.txt" , @"c:\functions\test.txt" ) ]
267- public void DeterminePrimaryScriptFile_MultipleFiles_ConfigTrumpsConvention ( string scriptFileProperty , string expedtedScriptFilePath )
285+ public void DeterminePrimaryScriptFile_MultipleFiles_ConfigTrumpsConvention ( string scriptFileProperty , string expectedScriptFilePath )
268286 {
269287 var files = new Dictionary < string , MockFileData >
270288 {
271- { expedtedScriptFilePath , new MockFileData ( string . Empty ) }
289+ { expectedScriptFilePath , new MockFileData ( string . Empty ) }
272290 } ;
273291 var fileSystem = new MockFileSystem ( files ) ;
274292
275293 string actualScriptFilePath = HostFunctionMetadataProvider . DeterminePrimaryScriptFile ( scriptFileProperty , @"c:\functions" , fileSystem ) ;
276- Assert . Equal ( expedtedScriptFilePath , actualScriptFilePath ) ;
294+ Assert . Equal ( expectedScriptFilePath , actualScriptFilePath ) ;
277295 }
278296
279297 [ Theory ]
@@ -285,6 +303,7 @@ public void DeterminePrimaryScriptFile_MultipleFiles_SourceFileSpecified(string
285303 {
286304 { @"c:\functions\queueTrigger.py" , new MockFileData ( string . Empty ) } ,
287305 { @"c:\functions\helper.py" , new MockFileData ( string . Empty ) } ,
306+ { @"c:\functions\__init__.py" , new MockFileData ( string . Empty ) } ,
288307 { @"c:\functions\test.txt" , new MockFileData ( string . Empty ) }
289308 } ;
290309 var fileSystem = new MockFileSystem ( files ) ;
0 commit comments