diff --git a/netjsonconfig/backends/openwrt/renderers.py b/netjsonconfig/backends/openwrt/renderers.py index 23970372b..bfac30d57 100644 --- a/netjsonconfig/backends/openwrt/renderers.py +++ b/netjsonconfig/backends/openwrt/renderers.py @@ -80,7 +80,7 @@ def _get_interfaces(self): if 'autostart' in uci_interface: uci_interface['auto'] = interface['autostart'] del uci_interface['autostart'] - if uci_interface.get('disabled'): + if 'disabled' in uci_interface: uci_interface['enabled'] = not interface['disabled'] del uci_interface['disabled'] if 'addresses' in uci_interface: diff --git a/tests/openwrt/test_network.py b/tests/openwrt/test_network.py index b150ea500..35ecc6a4a 100644 --- a/tests/openwrt/test_network.py +++ b/tests/openwrt/test_network.py @@ -1151,3 +1151,19 @@ def test_macaddr_override(self): option proto 'none' """) self.assertEqual(o.render(), expected) + + def test_interface_disabled_bug(self): + """ + see https://github.com/openwisp/netjsonconfig/issues/57 + """ + o = OpenWrt({ + "interfaces": [ + { + "type": "ethernet", + "name": "eth0", + "disabled": False + } + ] + }) + self.assertNotIn("disabled '0'", o.render()) + self.assertIn("enabled '1'", o.render())