Browse Source

tests / python3.5: fix AttributeError due to unavailable MagicMock.assert_called_once

https://github.com/fphammerle/switchbot-mqtt/pull/7/commits/38e23ba811de092e631a335148cecf22b858f533
Fabian Peter Hammerle 3 years ago
parent
commit
f9af627eef
3 changed files with 10 additions and 9 deletions
  1. 4 3
      CHANGELOG.md
  2. 3 3
      tests/test_dbus.py
  3. 3 3
      tests/test_mqtt.py

+ 4 - 3
CHANGELOG.md

@@ -6,9 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ## [Unreleased]
 ### Fixed
-- Replaced [PEP526](https://www.python.org/dev/peps/pep-0526/#abstract)-style variable type hints
-  with [PEP484](https://www.python.org/dev/peps/pep-0484/)-compatible
-  to restore compatibility with python3.5
+- compatibility with python3.5:
+  - replaced [PEP526](https://www.python.org/dev/peps/pep-0526/#abstract)-style variable type hints
+    with [PEP484](https://www.python.org/dev/peps/pep-0484/)-compatible
+  - fixed `AttributeError` due to unavailable `MagicMock.assert_called_once`
 
 ## [0.1.0] - 2020-06-16
 ### Added

+ 3 - 3
tests/test_dbus.py

@@ -44,7 +44,7 @@ def test__schedule_shutdown(action):
         "systemctl_mqtt._get_login_manager", return_value=login_manager_mock
     ):
         systemctl_mqtt._schedule_shutdown(action=action)
-    login_manager_mock.ScheduleShutdown.assert_called_once()
+    assert login_manager_mock.ScheduleShutdown.call_count == 1
     schedule_args, schedule_kwargs = login_manager_mock.ScheduleShutdown.call_args
     assert len(schedule_args) == 2
     assert schedule_args[0] == action
@@ -78,7 +78,7 @@ def test__schedule_shutdown_fail(caplog, action, exception_message, log_message)
         "systemctl_mqtt._get_login_manager", return_value=login_manager_mock
     ), caplog.at_level(logging.DEBUG):
         systemctl_mqtt._schedule_shutdown(action=action)
-    login_manager_mock.ScheduleShutdown.assert_called_once()
+    assert login_manager_mock.ScheduleShutdown.call_count == 1
     assert len(caplog.records) == 2
     assert caplog.records[0].levelno == logging.INFO
     assert caplog.records[0].message.startswith("scheduling {} for ".format(action))
@@ -98,7 +98,7 @@ def test_mqtt_topic_suffix_action_mapping(topic_suffix, expected_action_arg):
         "systemctl_mqtt._get_login_manager", return_value=login_manager_mock
     ):
         action()
-    login_manager_mock.ScheduleShutdown.assert_called_once()
+    assert login_manager_mock.ScheduleShutdown.call_count == 1
     schedule_args, schedule_kwargs = login_manager_mock.ScheduleShutdown.call_args
     assert len(schedule_args) == 2
     assert schedule_args[0] == expected_action_arg

+ 3 - 3
tests/test_mqtt.py

@@ -42,7 +42,7 @@ def test__run(mqtt_host, mqtt_port, mqtt_topic_prefix):
             mqtt_password=None,
             mqtt_topic_prefix=mqtt_topic_prefix,
         )
-    mqtt_client_mock.assert_called_once()
+    assert mqtt_client_mock.call_count == 1  # .assert_called_once requires python>=v3.6
     init_args, init_kwargs = mqtt_client_mock.call_args
     assert not init_args
     assert len(init_kwargs) == 1
@@ -58,7 +58,7 @@ def test__run(mqtt_host, mqtt_port, mqtt_topic_prefix):
         mqtt_topic_prefix + "/poweroff"
     )
     mqtt_client_mock().on_message(mqtt_client_mock(), settings, "message")
-    message_handler_mock.assert_called_once()
+    assert message_handler_mock.call_count == 1
     mqtt_client_mock().loop_forever.assert_called_once_with()
 
 
@@ -78,7 +78,7 @@ def test__run_authentication(
             mqtt_password=mqtt_password,
             mqtt_topic_prefix=mqtt_topic_prefix,
         )
-    mqtt_client_mock.assert_called_once()
+    assert mqtt_client_mock.call_count == 1
     init_args, init_kwargs = mqtt_client_mock.call_args
     assert not init_args
     assert set(init_kwargs.keys()) == {"userdata"}