Skip to content

Commit a453bbf

Browse files
committed
[fix] Avoid replcing the substring having TRUE/FALSE
1 parent ec90d55 commit a453bbf

2 files changed

Lines changed: 22 additions & 4 deletions

File tree

netjsonconfig/backends/openwrt/renderer.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import re
2-
31
from ..base.renderer import BaseRenderer
42

53

@@ -19,8 +17,7 @@ def cleanup(self, output):
1917
.replace("\nlist", "\n\tlist")
2018
)
2119
# convert True to 1 and False to 0 (exact match only, not substrings)
22-
output = re.sub(r"'True'", "'1'", output)
23-
output = re.sub(r"'False'", "'0'", output)
20+
output = output.replace("'True'", "'1'").replace("'False'", "'0'")
2421
# max 2 consecutive \n delimiters
2522
output = output.replace("\n\n\n", "\n\n")
2623
# if output is present

tests/openwrt/test_wireless.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,27 @@ def test_render_wifi_issue_250_false_ssid(self):
7777
expected_uci = self._wifi_uci.replace("'MyWifiAP'", "'FalseGait Living Guest'")
7878
self.assertEqual(o.render(), self._tabs(expected_uci))
7979

80+
def test_render_wifi_issue_250_mid_word_true_ssid(self):
81+
netjson = deepcopy(self._wifi_netjson)
82+
netjson["interfaces"][0]["wireless"]["ssid"] = "MyTrueNetwork"
83+
o = OpenWrt(netjson)
84+
expected_uci = self._wifi_uci.replace("'MyWifiAP'", "'MyTrueNetwork'")
85+
self.assertEqual(o.render(), self._tabs(expected_uci))
86+
87+
def test_render_wifi_issue_250_exact_true_ssid(self):
88+
netjson = deepcopy(self._wifi_netjson)
89+
netjson["interfaces"][0]["wireless"]["ssid"] = "True"
90+
o = OpenWrt(netjson)
91+
expected_uci = self._wifi_uci.replace("'MyWifiAP'", "'1'")
92+
self.assertEqual(o.render(), self._tabs(expected_uci))
93+
94+
def test_render_wifi_issue_250_exact_false_ssid(self):
95+
netjson = deepcopy(self._wifi_netjson)
96+
netjson["interfaces"][0]["wireless"]["ssid"] = "False"
97+
o = OpenWrt(netjson)
98+
expected_uci = self._wifi_uci.replace("'MyWifiAP'", "'0'")
99+
self.assertEqual(o.render(), self._tabs(expected_uci))
100+
80101
def test_parse_wifi_interface(self):
81102
o = OpenWrt(native=self._wifi_uci)
82103
self.assertDictEqual(o.config, self._wifi_netjson)

0 commit comments

Comments
 (0)