mirror of
https://github.com/m5stack/MicroPythonOS.git
synced 2026-05-20 11:51:27 -07:00
Simplify OSUpdate by using ConnectivityManager
This commit is contained in:
+1
-86
@@ -39,92 +39,7 @@ from mpos import PackageManager
|
||||
# Import the actual classes we're testing
|
||||
# Tests run from internal_filesystem/, so we add the assets directory to path
|
||||
sys.path.append('builtin/apps/com.micropythonos.osupdate/assets')
|
||||
from osupdate import NetworkMonitor, UpdateChecker, UpdateDownloader, round_up_to_multiple
|
||||
|
||||
|
||||
class TestNetworkMonitor(unittest.TestCase):
|
||||
"""Test NetworkMonitor class."""
|
||||
|
||||
def test_is_connected_with_connected_network(self):
|
||||
"""Test that is_connected returns True when network is connected."""
|
||||
mock_network = MockNetwork(connected=True)
|
||||
monitor = NetworkMonitor(network_module=mock_network)
|
||||
|
||||
self.assertTrue(monitor.is_connected())
|
||||
|
||||
def test_is_connected_with_disconnected_network(self):
|
||||
"""Test that is_connected returns False when network is disconnected."""
|
||||
mock_network = MockNetwork(connected=False)
|
||||
monitor = NetworkMonitor(network_module=mock_network)
|
||||
|
||||
self.assertFalse(monitor.is_connected())
|
||||
|
||||
def test_is_connected_without_network_module(self):
|
||||
"""Test that is_connected returns True when no network module (desktop mode)."""
|
||||
monitor = NetworkMonitor(network_module=None)
|
||||
|
||||
# Should return True (assume connected) in desktop mode
|
||||
self.assertTrue(monitor.is_connected())
|
||||
|
||||
def test_is_connected_with_exception(self):
|
||||
"""Test that is_connected returns False when WLAN raises exception."""
|
||||
class BadNetwork:
|
||||
STA_IF = 0
|
||||
def WLAN(self, interface):
|
||||
raise Exception("WLAN error")
|
||||
|
||||
monitor = NetworkMonitor(network_module=BadNetwork())
|
||||
|
||||
self.assertFalse(monitor.is_connected())
|
||||
|
||||
def test_network_state_change_detection(self):
|
||||
"""Test detecting network state changes."""
|
||||
mock_network = MockNetwork(connected=True)
|
||||
monitor = NetworkMonitor(network_module=mock_network)
|
||||
|
||||
# Initially connected
|
||||
self.assertTrue(monitor.is_connected())
|
||||
|
||||
# Disconnect
|
||||
mock_network.set_connected(False)
|
||||
self.assertFalse(monitor.is_connected())
|
||||
|
||||
# Reconnect
|
||||
mock_network.set_connected(True)
|
||||
self.assertTrue(monitor.is_connected())
|
||||
|
||||
def test_multiple_checks_when_connected(self):
|
||||
"""Test that multiple checks return consistent results."""
|
||||
mock_network = MockNetwork(connected=True)
|
||||
monitor = NetworkMonitor(network_module=mock_network)
|
||||
|
||||
# Multiple checks should all return True
|
||||
for _ in range(5):
|
||||
self.assertTrue(monitor.is_connected())
|
||||
|
||||
def test_wlan_with_different_interface_types(self):
|
||||
"""Test that correct interface type is used."""
|
||||
class NetworkWithInterface:
|
||||
STA_IF = 0
|
||||
CALLED_WITH = None
|
||||
|
||||
class MockWLAN:
|
||||
def __init__(self, interface):
|
||||
NetworkWithInterface.CALLED_WITH = interface
|
||||
self._connected = True
|
||||
|
||||
def isconnected(self):
|
||||
return self._connected
|
||||
|
||||
def WLAN(self, interface):
|
||||
return self.MockWLAN(interface)
|
||||
|
||||
network = NetworkWithInterface()
|
||||
monitor = NetworkMonitor(network_module=network)
|
||||
monitor.is_connected()
|
||||
|
||||
# Should have been called with STA_IF
|
||||
self.assertEqual(NetworkWithInterface.CALLED_WITH, 0)
|
||||
from osupdate import UpdateChecker, UpdateDownloader, round_up_to_multiple
|
||||
|
||||
|
||||
class TestUpdateChecker(unittest.TestCase):
|
||||
|
||||
Reference in New Issue
Block a user