fix tests
This commit is contained in:
parent
ed09054928
commit
e3e5c7f760
|
@ -1,6 +1,8 @@
|
||||||
import re
|
import re
|
||||||
import urwid
|
import urwid
|
||||||
|
|
||||||
|
from subiquitycore.ui.stretchy import StretchyOverlay
|
||||||
|
|
||||||
|
|
||||||
def find_with_pred(w, pred, return_path=False):
|
def find_with_pred(w, pred, return_path=False):
|
||||||
def _walk(w, path):
|
def _walk(w, path):
|
||||||
|
@ -29,6 +31,10 @@ def find_with_pred(w, pred, return_path=False):
|
||||||
r, p = _walk(w, (w,) + path)
|
r, p = _walk(w, (w,) + path)
|
||||||
if r:
|
if r:
|
||||||
return r, p
|
return r, p
|
||||||
|
elif isinstance(w, StretchyOverlay):
|
||||||
|
r, p = _walk(w.top_w, (w,) + path)
|
||||||
|
if r:
|
||||||
|
return r, p
|
||||||
return None, None
|
return None, None
|
||||||
r, p = _walk(w, ())
|
r, p = _walk(w, ())
|
||||||
if return_path:
|
if return_path:
|
||||||
|
|
|
@ -1,12 +1,15 @@
|
||||||
import unittest
|
import unittest
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
|
import urwid
|
||||||
|
|
||||||
from subiquitycore.controllers.network import NetworkController
|
from subiquitycore.controllers.network import NetworkController
|
||||||
from subiquitycore.models.network import Networkdev, NetworkModel
|
from subiquitycore.models.network import Networkdev, NetworkModel
|
||||||
from subiquitycore.testing import view_helpers
|
from subiquitycore.testing import view_helpers
|
||||||
from subiquitycore.ui.views.network_configure_manual_interface import (
|
from subiquitycore.ui.views.network_configure_manual_interface import (
|
||||||
NetworkConfigureIPv4InterfaceView)
|
EditNetworkStretchy,
|
||||||
|
)
|
||||||
|
from subiquitycore.view import BaseView
|
||||||
|
|
||||||
|
|
||||||
valid_data = {
|
valid_data = {
|
||||||
|
@ -23,42 +26,41 @@ class TestNetworkConfigureIPv4InterfaceView(unittest.TestCase):
|
||||||
def make_view(self):
|
def make_view(self):
|
||||||
model = mock.create_autospec(spec=NetworkModel)
|
model = mock.create_autospec(spec=NetworkModel)
|
||||||
controller = mock.create_autospec(spec=NetworkController)
|
controller = mock.create_autospec(spec=NetworkController)
|
||||||
ifname = 'ifname'
|
|
||||||
|
|
||||||
def get_netdev_by_name(name):
|
device = mock.create_autospec(spec=Networkdev)
|
||||||
if name == ifname:
|
device.configured_ip_addresses_for_version = lambda v: []
|
||||||
dev = mock.create_autospec(spec=Networkdev)
|
base_view = BaseView(urwid.Text(""))
|
||||||
dev.configured_ip_addresses_for_version = lambda v: []
|
base_view.model = model
|
||||||
return dev
|
base_view.controller = controller
|
||||||
else:
|
base_view.refresh_model_inputs = lambda: None
|
||||||
raise AssertionError("get_netdev_by_name called with "
|
stretchy = EditNetworkStretchy(base_view, device, 4)
|
||||||
"unexpected arg %s" % (name,))
|
base_view.show_stretchy_overlay(stretchy)
|
||||||
model.get_netdev_by_name.side_effect = get_netdev_by_name
|
stretchy.method_form.method.value = "manual"
|
||||||
return NetworkConfigureIPv4InterfaceView(model, controller, ifname)
|
return base_view, stretchy
|
||||||
|
|
||||||
def test_initial_focus(self):
|
def test_initial_focus(self):
|
||||||
view = self.make_view()
|
view, stretchy = self.make_view()
|
||||||
focus_path = view_helpers.get_focus_path(view)
|
focus_path = view_helpers.get_focus_path(view)
|
||||||
for w in reversed(focus_path):
|
for w in reversed(focus_path):
|
||||||
if w is view.form.subnet.widget:
|
if w is stretchy.method_form.method.widget:
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
self.fail("Subnet widget not focus")
|
self.fail("method widget not focus")
|
||||||
|
|
||||||
def test_done_initially_disabled(self):
|
def test_done_initially_disabled(self):
|
||||||
view = self.make_view()
|
_, stretchy = self.make_view()
|
||||||
self.assertFalse(view.form.done_btn.enabled)
|
self.assertFalse(stretchy.manual_form.done_btn.enabled)
|
||||||
|
|
||||||
def test_done_enabled_for_valid_data(self):
|
def test_done_enabled_for_valid_data(self):
|
||||||
view = self.make_view()
|
_, stretchy = self.make_view()
|
||||||
view_helpers.enter_data(view.form, valid_data)
|
view_helpers.enter_data(stretchy.manual_form, valid_data)
|
||||||
self.assertTrue(view.form.done_btn.enabled)
|
self.assertTrue(stretchy.manual_form.done_btn.enabled)
|
||||||
|
|
||||||
def test_click_done(self):
|
def test_click_done(self):
|
||||||
# The ugliness of this test is probably an indication that the
|
# The ugliness of this test is probably an indication that the
|
||||||
# view is doing too much...
|
# view is doing too much...
|
||||||
view = self.make_view()
|
view, stretchy = self.make_view()
|
||||||
view_helpers.enter_data(view.form, valid_data)
|
view_helpers.enter_data(stretchy.manual_form, valid_data)
|
||||||
|
|
||||||
expected = valid_data.copy()
|
expected = valid_data.copy()
|
||||||
expected['nameservers'] = [expected['nameservers']]
|
expected['nameservers'] = [expected['nameservers']]
|
||||||
|
@ -68,6 +70,7 @@ class TestNetworkConfigureIPv4InterfaceView(unittest.TestCase):
|
||||||
but = view_helpers.find_button_matching(view, "^Save$")
|
but = view_helpers.find_button_matching(view, "^Save$")
|
||||||
view_helpers.click(but)
|
view_helpers.click(but)
|
||||||
|
|
||||||
view.dev.remove_ip_networks_for_version.assert_called_once_with(4)
|
rinfv = stretchy.device.remove_ip_networks_for_version
|
||||||
view.dev.remove_nameservers.assert_called_once_with()
|
rinfv.assert_called_once_with(4)
|
||||||
view.dev.add_network.assert_called_once_with(4, expected)
|
stretchy.device.remove_nameservers.assert_called_once_with()
|
||||||
|
stretchy.device.add_network.assert_called_once_with(4, expected)
|
||||||
|
|
Loading…
Reference in New Issue