mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-11-09 02:49:43 +00:00
De-duplicate Backup/Restore logic (#3311)
* De-duplicate Backup/Restore logic Create internal _do_backup()/_do_restore() method which de-duplicates some of the backup/restore logic previously part of full/partial backup/restore. * Add Backup/Restore test coverage
This commit is contained in:
46
tests/backups/conftest.py
Normal file
46
tests/backups/conftest.py
Normal file
@@ -0,0 +1,46 @@
|
||||
"""Mock test."""
|
||||
|
||||
from unittest.mock import AsyncMock, MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from supervisor.backups.const import BackupType
|
||||
from supervisor.backups.validate import ALL_FOLDERS
|
||||
|
||||
from tests.const import TEST_ADDON_SLUG
|
||||
|
||||
|
||||
@pytest.fixture(name="backup_mock")
|
||||
def fixture_backup_mock():
|
||||
"""Backup class mock."""
|
||||
with patch("supervisor.backups.manager.Backup") as backup_mock:
|
||||
backup_instance = MagicMock()
|
||||
backup_mock.return_value = backup_instance
|
||||
|
||||
backup_instance.store_addons = AsyncMock(return_value=None)
|
||||
backup_instance.store_folders = AsyncMock(return_value=None)
|
||||
backup_instance.restore_addons = AsyncMock(return_value=None)
|
||||
backup_instance.restore_folders = AsyncMock(return_value=None)
|
||||
backup_instance.restore_repositories = AsyncMock(return_value=None)
|
||||
|
||||
yield backup_mock
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def partial_backup_mock(backup_mock):
|
||||
"""Partial backup mock."""
|
||||
backup_instance = backup_mock.return_value
|
||||
backup_instance.sys_type = BackupType.PARTIAL
|
||||
backup_instance.folders = []
|
||||
backup_instance.addon_list = [TEST_ADDON_SLUG]
|
||||
yield backup_mock
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def full_backup_mock(backup_mock):
|
||||
"""Full backup mock."""
|
||||
backup_instance = backup_mock.return_value
|
||||
backup_instance.sys_type = BackupType.FULL
|
||||
backup_instance.folders = ALL_FOLDERS
|
||||
backup_instance.addon_list = [TEST_ADDON_SLUG]
|
||||
yield backup_mock
|
||||
Reference in New Issue
Block a user