pseudomodem: Make DeleteBearer behave like ModemManager

BUG=chromium:362275
TEST=cellular_OutOfCreditsSubscriptionState

Change-Id: I1c7de303848063eb2be57ba0d006180d079c227e
Reviewed-on: https://chromium-review.googlesource.com/194146
Reviewed-by: Thieu Le <[email protected]>
Commit-Queue: Thieu Le <[email protected]>
Tested-by: Thieu Le <[email protected]>
diff --git a/client/cros/cellular/pseudomodem/disconnect_machine.py b/client/cros/cellular/pseudomodem/disconnect_machine.py
index 7b4c84f..0367fdd 100644
--- a/client/cros/cellular/pseudomodem/disconnect_machine.py
+++ b/client/cros/cellular/pseudomodem/disconnect_machine.py
@@ -38,8 +38,6 @@
         assert not self._modem.IsPendingConnect()
         assert not self._modem.IsPendingEnable()
         assert not self._modem.IsPendingRegister()
-        assert self._modem.active_bearers
-        assert self._modem.bearers
 
         dc_reason = mm1_constants.MM_MODEM_STATE_CHANGE_REASON_USER_REQUESTED
         try:
@@ -94,9 +92,6 @@
                                           message))
                 return False
 
-            assert self._modem.bearers
-            assert self._modem.active_bearers
-
             if self.bearer_path == mm1_constants.ROOT_PATH:
                 logging.info('All bearers will be disconnected.')
             elif not (self.bearer_path in self._modem.bearers):
diff --git a/client/cros/cellular/pseudomodem/modem.py b/client/cros/cellular/pseudomodem/modem.py
index 778146b..dfd6be6 100644
--- a/client/cros/cellular/pseudomodem/modem.py
+++ b/client/cros/cellular/pseudomodem/modem.py
@@ -602,17 +602,10 @@
             logging.info('Unknown bearer. Nothing to do.')
             return
         bearer_object = self.bearers[bearer]
-        if bearer_object.IsActive():
-            def _SuccessCallback():
-                logging.info('Modem: Bearer %s disconnected.', str(bearer))
-            def _ErrorCallback(error):
-                logging.info('Modem: Failed to disconnect bearer: %s',
-                             str(error))
-            self.Disconnect(bearer, _SuccessCallback, _ErrorCallback)
-
         bearer_object.remove_from_connection()
         self.bearers.pop(bearer)
         self._UpdateBearersProperty()
+        self.active_bearers.pop(bearer)
 
 
     def ClearBearers(self):