Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
drew2a committed Nov 17, 2022
1 parent 60b00a2 commit 9d0c3b2
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 20 deletions.
20 changes: 9 additions & 11 deletions src/tribler/core/upgrade/tests/test_version_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
VERSION_HISTORY_FILENAME,
VersionError,
VersionHistory,
remove_state_dirs,
)
from tribler.core.utilities.simpledefs import STATEDIR_CHANNELS_DIR, STATEDIR_CHECKPOINT_DIR, STATEDIR_DB_DIR

Expand All @@ -24,7 +23,7 @@ def test_version_to_dirname():
root_path = Path('/ROOT')

def version_to_dirname(version_str):
return TriblerVersion(root_path, version_str).directory
return TriblerVersion(root_path, version_str, []).directory

assert version_to_dirname("7.5.4") == Path("/ROOT/7.5")
assert version_to_dirname("7.5.4-GIT") == Path("/ROOT/7.5")
Expand Down Expand Up @@ -206,16 +205,15 @@ def test_fork_state_directory(tmpdir_factory):
assert history2.last_run_version.version_str == code_version_id



def test_copy_state_directory(tmpdir):
src_dir = DUMMY_STATE_DIR
tgt_dir = Path(tmpdir) / "100.100"

root_state_dir = Path(tmpdir)
v1 = TriblerVersion(root_state_dir, "7.8.9")
version_history = VersionHistory(root_state_dir)
v1 = TriblerVersion(root_state_dir, "7.8.9", [])
v1.directory = src_dir

v2 = TriblerVersion(root_state_dir, "100.100.100")
v2 = TriblerVersion(root_state_dir, "100.100.100", version_history.files_to_copy)
assert v2.directory == tgt_dir

v2.copy_state_from(v1)
Expand Down Expand Up @@ -340,7 +338,7 @@ def test_installed_versions_and_removal(tmpdir_factory):
def test_coverage(tmpdir):
root_state_dir = Path(tmpdir)

v2 = TriblerVersion(root_state_dir, "7.8.1")
v2 = TriblerVersion(root_state_dir, "7.8.1", [])
assert v2.directory == root_state_dir / "7.8"
v2.directory.mkdir()
v2.rename_directory("renamed")
Expand All @@ -356,7 +354,7 @@ def test_coverage(tmpdir):
size = v2.calc_state_size()
assert size > 0

v3 = TriblerVersion(root_state_dir, "7.7")
v3 = TriblerVersion(root_state_dir, "7.7", [])
v3.directory.mkdir()
v3.deleted = True
v3.delete_state()
Expand All @@ -365,10 +363,10 @@ def test_coverage(tmpdir):
v3.delete_state()
assert not v3.directory.exists()

v4 = TriblerVersion(root_state_dir, "7.5.1a")
v4 = TriblerVersion(root_state_dir, "7.5.1a", [])
v4.directory.mkdir()
(v4.directory / 'triblerd.conf').write_text("abc")
v5 = TriblerVersion(root_state_dir, "7.6.1b")
v5 = TriblerVersion(root_state_dir, "7.6.1b", ['triblerd.conf'])
v5.directory.mkdir()
with pytest.raises(VersionError, match='Directory for version 7.6.1b already exists'):
v5.copy_state_from(v4)
Expand Down Expand Up @@ -397,7 +395,7 @@ def test_coverage(tmpdir):
for name in names:
assert name in ('7.5', '7.6', 'channels', 'sqlite') or name.startswith("deleted_v7.8_")

remove_state_dirs(root_state_dir, names)
VersionHistory(root_state_dir).remove_state_dirs(names)
assert not (root_state_dir / "7.5").exists()
assert not (root_state_dir / "7.6").exists()
assert not (root_state_dir / "channels").exists()
Expand Down
12 changes: 10 additions & 2 deletions src/tribler/core/upgrade/version_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import json
import logging
import os
import shutil
import time
from collections import OrderedDict
Expand Down Expand Up @@ -71,7 +72,8 @@ class TriblerVersion:
should_recreate_directory: bool
deleted: bool

def __init__(self, root_state_dir: Path, version_str: str, files_to_copy: List[str], last_launched_at: Optional[float] = None):
def __init__(self, root_state_dir: Path, version_str: str, files_to_copy: List[str],
last_launched_at: Optional[float] = None):
if last_launched_at is None:
last_launched_at = time.time()
self.logger = logging.getLogger(self.__class__.__name__)
Expand Down Expand Up @@ -303,7 +305,7 @@ def load(self, file_path: Path):
version = TriblerVersion(
root_state_dir=self.root_state_dir,
version_str=version_str,
files_to_copy= self.files_to_copy,
files_to_copy=self.files_to_copy,
last_launched_at=timestamp,
)
# store only versions with directories:
Expand Down Expand Up @@ -389,3 +391,9 @@ def get_disposable_state_directories(

result.sort()
return result

def remove_state_dirs(self, state_dirs: List[str]):
for state_dir in state_dirs:
self.logger.info(f"Remove state directory {state_dir}")
state_dir = os.path.join(self.root_state_dir, state_dir)
shutil.rmtree(state_dir, ignore_errors=True)
8 changes: 1 addition & 7 deletions src/tribler/gui/widgets/settingspage.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,15 +298,9 @@ def dir_from_checkbox_text(checkbox):
dirs_selected_for_deletion.append(state_dir)

if self.on_confirm_remove_version_dirs(dirs_selected_for_deletion):
self.remove_state_dirs(root_version_dir, dirs_selected_for_deletion)
self.version_history.remove_state_dirs(root_version_dir, dirs_selected_for_deletion)
self.refresh_old_version_checkboxes()

def remove_state_dirs(self, root_state_dir: str, state_dirs: List[str]):
for state_dir in state_dirs:
self.logger.info(f"Remove state directory {state_dir}")
state_dir = os.path.join(root_state_dir, state_dir)
shutil.rmtree(state_dir, ignore_errors=True)

def on_confirm_remove_version_dirs(self, selected_versions):
message_box = QMessageBox()
message_box.setIcon(QMessageBox.Question)
Expand Down

0 comments on commit 9d0c3b2

Please sign in to comment.