Skip to content

Commit 24a435e

Browse files
Simplify test-backup module syntax
1 parent 7ce19f5 commit 24a435e

File tree

1 file changed

+24
-68
lines changed

1 file changed

+24
-68
lines changed

tests/unit/test_backups.py

Lines changed: 24 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# See LICENSE file for licensing details.
33

44
import unittest
5-
from unittest.mock import MagicMock, PropertyMock, patch
5+
from unittest.mock import MagicMock, patch
66

77
from charms.mysql.v0.mysql import (
88
MySQLConfigureInstanceError,
@@ -285,7 +285,7 @@ def test_on_create_backup_failure(
285285
# test failure with _can_unit_perform_backup
286286
_can_unit_perform_backup.return_value = False, "can unit perform backup failure"
287287
event = MagicMock()
288-
type(event).params = PropertyMock(return_value={"force": False})
288+
event.params = {"force": False}
289289
self.charm.unit.status = ActiveStatus()
290290

291291
self.mysql_backups._on_create_backup(event)
@@ -296,7 +296,7 @@ def test_on_create_backup_failure(
296296
# test failure with _can_cluster_perform_backup
297297
_can_cluster_perform_backup.return_value = False, "can cluster perform backup failure"
298298
event = MagicMock()
299-
type(event).params = PropertyMock(return_value={"force": False})
299+
event.params = {"force": False}
300300
self.charm.unit.status = ActiveStatus()
301301

302302
self.mysql_backups._on_create_backup(event)
@@ -589,10 +589,7 @@ def test_pre_restore_checks(
589589
):
590590
"""Test _pre_restore_checks()."""
591591
event_mock = MagicMock()
592-
type(event_mock).params = PropertyMock(
593-
return_value={"restore-to-time": "2025-02-10 12:30:30", "backup-id": "test-id"}
594-
)
595-
592+
event_mock.params = {"restore-to-time": "2025-02-10 12:30:30", "backup-id": "test-id"}
596593
self.assertTrue(self.mysql_backups._pre_restore_checks(event_mock))
597594

598595
@patch("mysql_vm_helpers.MySQL.is_server_connectable", return_value=True)
@@ -610,51 +607,32 @@ def test_pre_restore_checks_failure(
610607
# test more than one planned units
611608
self.harness.add_relation_unit(self.peer_relation_id, "mysql/1")
612609
event = MagicMock()
613-
type(event).params = PropertyMock(
614-
return_value={"restore-to-time": "2025-02-10 12:30:30", "backup-id": "test-id"}
615-
)
616-
610+
event.params = {"restore-to-time": "2025-02-10 12:30:30", "backup-id": "test-id"}
617611
self.assertFalse(self.mysql_backups._pre_restore_checks(event))
618612

619613
self.harness.remove_relation_unit(self.peer_relation_id, "mysql/1")
620614

621615
# test unit in blocked state
622616
_is_unit_busy.return_value = True
623617
event = MagicMock()
624-
type(event).params = PropertyMock(
625-
return_value={"restore-to-time": "2025-02-10 12:30:30", "backup-id": "test-id"}
626-
)
627-
618+
event.params = {"restore-to-time": "2025-02-10 12:30:30", "backup-id": "test-id"}
628619
self.assertFalse(self.mysql_backups._pre_restore_checks(event))
629620

630621
# test mysqld not running
631622
_is_server_connectable.return_value = False
632623
event = MagicMock()
633-
type(event).params = PropertyMock(
634-
return_value={"restore-to-time": "2025-02-10 12:30:30", "backup-id": "test-id"}
635-
)
636-
624+
event.params = {"restore-to-time": "2025-02-10 12:30:30", "backup-id": "test-id"}
637625
self.assertFalse(self.mysql_backups._pre_restore_checks(event))
638626

639627
# test missing backup-id
640628
event = MagicMock()
641-
type(event).params = PropertyMock(
642-
return_value={"restore-to-time": "2025-02-10 12:30:30", "backup-id": "test-id"}
643-
)
644-
645-
params_mock = {}
646-
with patch.dict(params_mock, {}):
647-
type(event).params = PropertyMock(return_value=params_mock)
648-
649-
self.assertFalse(self.mysql_backups._pre_restore_checks(event))
629+
event.params = {}
630+
self.assertFalse(self.mysql_backups._pre_restore_checks(event))
650631

651632
# test missing s3-integrator relation
652633
self.harness.remove_relation(self.s3_integrator_id)
653634
event = MagicMock()
654-
type(event).params = PropertyMock(
655-
return_value={"restore-to-time": "2025-02-10 12:30:30", "backup-id": "test-id"}
656-
)
657-
635+
event.params = {"restore-to-time": "2025-02-10 12:30:30", "backup-id": "test-id"}
658636
self.assertFalse(self.mysql_backups._pre_restore_checks(event))
659637

660638
@patch("charm.MySQLOperatorCharm._on_update_status")
@@ -681,12 +659,8 @@ def test_on_restore(
681659
):
682660
"""Test _on_restore()."""
683661
event = MagicMock()
684-
params_mock = {}
685-
686-
with patch.dict(params_mock, {"backup-id": "test-backup-id"}):
687-
type(event).params = PropertyMock(return_value=params_mock)
688-
689-
self.mysql_backups._on_restore(event)
662+
event.params = {"backup-id": "test-backup-id"}
663+
self.mysql_backups._on_restore(event)
690664

691665
expected_s3_parameters = {"path": "/path"}
692666

@@ -729,11 +703,8 @@ def test_on_restore_failure(
729703
_post_restore.return_value = (False, "post restore error")
730704

731705
event = MagicMock()
732-
params_mock = {}
733-
with patch.dict(params_mock, {"backup-id": "test-backup-id"}):
734-
type(event).params = PropertyMock(return_value=params_mock)
735-
736-
self.mysql_backups._on_restore(event)
706+
event.params = {"backup-id": "test-backup-id"}
707+
self.mysql_backups._on_restore(event)
737708

738709
event.set_results.assert_not_called()
739710
event.fail.assert_called_once_with("post restore error")
@@ -742,11 +713,8 @@ def test_on_restore_failure(
742713
_restore.return_value = (False, True, "restore error")
743714

744715
event = MagicMock()
745-
params_mock = {}
746-
with patch.dict(params_mock, {"backup-id": "test-backup-id"}):
747-
type(event).params = PropertyMock(return_value=params_mock)
748-
749-
self.mysql_backups._on_restore(event)
716+
event.params = {"backup-id": "test-backup-id"}
717+
self.mysql_backups._on_restore(event)
750718

751719
event.set_results.assert_not_called()
752720
event.fail.assert_called_once_with("restore error")
@@ -758,11 +726,8 @@ def test_on_restore_failure(
758726
_restore.return_value = (False, False, "restore error")
759727

760728
event = MagicMock()
761-
params_mock = {}
762-
with patch.dict(params_mock, {"backup-id": "test-backup-id"}):
763-
type(event).params = PropertyMock(return_value=params_mock)
764-
765-
self.mysql_backups._on_restore(event)
729+
event.params = {"backup-id": "test-backup-id"}
730+
self.mysql_backups._on_restore(event)
766731

767732
event.set_results.assert_not_called()
768733
event.fail.assert_called_once_with("restore error")
@@ -772,11 +737,8 @@ def test_on_restore_failure(
772737
# test failure of _pre_restore()
773738
_pre_restore.return_value = (False, "pre restore error")
774739
event = MagicMock()
775-
params_mock = {}
776-
with patch.dict(params_mock, {"backup-id": "test-backup-id"}):
777-
type(event).params = PropertyMock(return_value=params_mock)
778-
779-
self.mysql_backups._on_restore(event)
740+
event.params = {"backup-id": "test-backup-id"}
741+
self.mysql_backups._on_restore(event)
780742

781743
event.set_results.assert_not_called()
782744
event.fail.assert_called_once_with("pre restore error")
@@ -785,11 +747,8 @@ def test_on_restore_failure(
785747
_fetch_and_check_existence_of_s3_path.return_value = False
786748

787749
event = MagicMock()
788-
params_mock = {}
789-
with patch.dict(params_mock, {"backup-id": "test-backup-id"}):
790-
type(event).params = PropertyMock(return_value=params_mock)
791-
792-
self.mysql_backups._on_restore(event)
750+
event.params = {"backup-id": "test-backup-id"}
751+
self.mysql_backups._on_restore(event)
793752

794753
event.set_results.assert_not_called()
795754
event.fail.assert_called_once_with("Invalid backup-id: test-backup-id")
@@ -798,11 +757,8 @@ def test_on_restore_failure(
798757
_retrieve_s3_parameters.return_value = ({}, ["bucket"])
799758

800759
event = MagicMock()
801-
params_mock = {}
802-
with patch.dict(params_mock, {"backup-id": "test-backup-id"}):
803-
type(event).params = PropertyMock(return_value=params_mock)
804-
805-
self.mysql_backups._on_restore(event)
760+
event.params = {"backup-id": "test-backup-id"}
761+
self.mysql_backups._on_restore(event)
806762

807763
event.set_results.assert_not_called()
808764
event.fail.assert_called_once_with("Missing S3 parameters: ['bucket']")

0 commit comments

Comments
 (0)