File tree Expand file tree Collapse file tree
netjsonconfig/backends/openwrt/converters Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -39,7 +39,12 @@ def to_intermediate(self):
3939 '{0}\n \n ' .format (json_block ))
4040 continue
4141 block ['.type' ] = block .pop ('config_name' )
42- block ['.name' ] = block .pop ('config_value' , '{0}_{1}' .format (block ['.type' ], i ))
42+ block ['.name' ] = block .pop ('config_value' ,
43+ # default value in case the
44+ # UCI name is not defined
45+ '{0}_{1}' .format (block ['.type' ], i ))
46+ # ensure UCI name is valid
47+ block ['.name' ] = self ._get_uci_name (block ['.name' ])
4348 block_list .append (sorted_dict (block ))
4449 i += 1
4550 if block_list :
Original file line number Diff line number Diff line change @@ -238,3 +238,28 @@ def test_merge(self):
238238 def test_skip_nonlists (self ):
239239 o = OpenWrt ({"custom_package" : {'unknown' : True }})
240240 self .assertEqual (o .render (), '' )
241+
242+ def test_render_invalid_uci_name (self ):
243+ o = OpenWrt ({
244+ "olsrd2" : [
245+ {
246+ "lan" : "10.150.25.0/24 domain=0" ,
247+ "config_value" : "lan-hna" ,
248+ "config_name" : "olsrv2"
249+ },
250+ {
251+ "lan" : "0.0.0.0/24 domain=1" ,
252+ "config_value" : "internet-hna" ,
253+ "config_name" : "olsrv2"
254+ }
255+ ],
256+ })
257+ expected = self ._tabs ("""package olsrd2
258+
259+ config olsrv2 'lan_hna'
260+ option lan '10.150.25.0/24 domain=0'
261+
262+ config olsrv2 'internet_hna'
263+ option lan '0.0.0.0/24 domain=1'
264+ """ )
265+ self .assertEqual (o .render (), expected )
You can’t perform that action at this time.
0 commit comments