def test_add_domain(self, build_mock_domain): backup_group = BackupGroup() dom = build_mock_domain backup_group.add_domain(dom) assert len(backup_group.backups) == 1 assert backup_group.backups[0].dom == dom
def test_add_dombackup_dedup(self, build_mock_domain): dom = build_mock_domain backup_group = BackupGroup(domlst=(dom, )) backup_group.add_dombackup(DomBackup(dom, dev_disks=("vda", ))) backup_group.add_dombackup(DomBackup(dom, dev_disks=("vdb", ))) assert len(backup_group.backups) == 1 assert len(backup_group.backups[0].disks.keys()) == 2
def test_start_with_dir_by_domain(self, build_mock_domain, mocker): backup_group = BackupGroup(domlst=(build_mock_domain, ), target_dir="/tmp") dombackup = backup_group.backups[0] dombackup.start = mocker.stub() expected_target_dir = os.path.join("/tmp", dombackup.dom.name()) backup_group.start() assert dombackup.target_dir == expected_target_dir
def test_dedup_add_domain(self, build_mock_domain): """ Test to add 2 times the same backup and check that it's not duplicated """ dom = build_mock_domain backup_group = BackupGroup(domlst=(dom, )) backup_group.add_domain(dom) assert len(backup_group.backups) == 1
def test_propagate_attr(self, build_mock_domain): backup_group = BackupGroup(domlst=(build_mock_domain, ), compression="xz") assert backup_group.backups[0].compression == "xz" backup_group.default_bak_param["target_dir"] = "/test" assert backup_group.backups[0].target_dir is None backup_group.propagate_default_backup_attr() assert backup_group.backups[0].target_dir == "/test"
def test_start_with_dir_by_domain(self, build_mock_domain, mocker): backup_group = BackupGroup( domlst=(build_mock_domain, ), target_dir="/tmp" ) dombackup = backup_group.backups[0] dombackup.start = mocker.stub() expected_target_dir = os.path.join("/tmp", dombackup.dom.name()) backup_group.start() assert dombackup.target_dir == expected_target_dir
def test_propagate_attr(self, build_mock_domain): backup_group = BackupGroup( domlst=(build_mock_domain, ), compression="xz" ) assert backup_group.backups[0].compression == "xz" backup_group.default_bak_param["target_dir"] = "/test" assert backup_group.backups[0].target_dir is None backup_group.propagate_default_backup_attr() assert backup_group.backups[0].target_dir == "/test"
def test_propagate_attr_multiple_domains(self, mocker): backup_group = BackupGroup(domlst=(MockDomain(_conn=mocker.stub()), MockDomain(_conn=mocker.stub())), compression="xz") for b in backup_group.backups: assert b.compression == "xz" backup_group.default_bak_param["target_dir"] = "/test" for b in backup_group.backups: assert b.target_dir is None backup_group.propagate_default_backup_attr() for b in backup_group.backups: assert b.target_dir is "/test"
def test_start_with_err(self, build_mock_domain, mocker): backup_group = BackupGroup( domlst=(MockDomain(_conn=mocker.stub()), MockDomain(_conn=mocker.stub(), name="test_error"))) def error_start(*args, **kwargs): raise Exception() backup_group.backups[0].start = error_start backup_group.backups[1].start = mocker.stub() with pytest.raises(BackupsFailureInGroupError): backup_group.start() assert backup_group.backups[1].start.called
def get_backup_group(build_mock_domain, build_mock_libvirtconn): callbacks_registrer = DomExtSnapshotCallbackRegistrer(build_mock_libvirtconn) return BackupGroup( build_mock_libvirtconn, domlst=((build_mock_domain, None),), callbacks_registrer=callbacks_registrer, )
def test_start_with_err(self, build_mock_domain, mocker): backup_group = BackupGroup(domlst=( MockDomain(_conn=mocker.stub()), MockDomain(_conn=mocker.stub(), name="test_error") )) def error_start(*args, **kwargs): raise Exception() backup_group.backups[0].start = error_start backup_group.backups[1].start = mocker.stub() with pytest.raises(BackupsFailureInGroupError): backup_group.start() assert backup_group.backups[1].start.called
def test_propagate_attr_multiple_domains(self, mocker): backup_group = BackupGroup( domlst=( MockDomain(_conn=mocker.stub()), MockDomain(_conn=mocker.stub()) ), compression="xz" ) for b in backup_group.backups: assert b.compression == "xz" backup_group.default_bak_param["target_dir"] = "/test" for b in backup_group.backups: assert b.target_dir is None backup_group.propagate_default_backup_attr() for b in backup_group.backups: assert b.target_dir == "/test"
def test_self(self): backup_group = BackupGroup() assert len(backup_group.backups) == 0
def build_backup_group(conn, *group_args, **group_kwargs): callbacks_registrer = DomExtSnapshotCallbackRegistrer(conn) return BackupGroup(*group_args, callbacks_registrer=callbacks_registrer, **group_kwargs)
def build_main_backup_group(groups): main_group = BackupGroup() for g in groups: for d in g.backups: main_group.add_dombackup(d) return main_group
def test_self_with_domain(self, build_mock_domain): dom = build_mock_domain backup_group = BackupGroup(domlst=((dom, None), )) assert len(backup_group.backups) == 1 assert backup_group.backups[0].dom == dom
def test_start(self, build_mock_domain, mocker): backup_group = BackupGroup(domlst=(build_mock_domain, )) backup_group.backups[0].start = mocker.stub() backup_group.start() assert backup_group.backups[0].start.called
def test_search_not_found(self, build_mock_domain): dom = build_mock_domain backup_group = BackupGroup() with pytest.raises(StopIteration): next(backup_group.search(dom))
def test_search(self, build_mock_domain): dom = build_mock_domain backup_group = BackupGroup(domlst=(dom, )) dombak = next(backup_group.search(dom)) assert dombak == backup_group.backups[0]