File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed
Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -360,8 +360,13 @@ def field_names_to_request(cls, source_config):
360360 elif isinstance (v , list ):
361361 # It's a list of field names
362362 fields |= set (v )
363- else :
363+ elif isinstance (v , str ):
364+ # It's a direct field name mapping
364365 fields .add (v )
366+ # Note: We intentionally skip non-string scalar values (e.g., integers) because
367+ # Esri only supports string field names. Also, the 'accuracy' field can be
368+ # set to an integer constant (like 1) to indicate a fixed accuracy level,
369+ # rather than a field name to fetch from the source.
365370
366371 if fields :
367372 # Remove any blank or None values
Original file line number Diff line number Diff line change @@ -347,6 +347,24 @@ def test_field_names_to_request(self):
347347 fields11 = EsriRestDownloadTask .field_names_to_request (conform11 )
348348 self .assertEqual (fields11 , ['Number' , 'StateColumn' , 'Street' ])
349349
350+ # Test that integer accuracy values are skipped (not treated as field names)
351+ # The 'accuracy' field can be an integer constant indicating a fixed accuracy level
352+ conform12 = SourceConfig (dict ({
353+ "schema" : 2 ,
354+ "layers" : {
355+ "addresses" : [{
356+ "name" : "default" ,
357+ "conform" : {
358+ "street" : "StreetName" ,
359+ "number" : "HouseNumber" ,
360+ "accuracy" : 1 ,
361+ }
362+ }]
363+ }
364+ }), "addresses" , "default" )
365+ fields12 = EsriRestDownloadTask .field_names_to_request (conform12 )
366+ self .assertEqual (fields12 , ['HouseNumber' , 'StreetName' ])
367+
350368 def test_handle_feature_server_with_lat_lon_in_conform (self ):
351369 '''
352370 '''
You can’t perform that action at this time.
0 commit comments