def test_apply_patcher_file(
    mock_ensure_no_menu_mod: MagicMock,
    mock_create_pak_backups: MagicMock,
    mock_add_menu_mod_to_files: MagicMock,
    mock_run_with_args: MagicMock,
    mock_apply_patches: MagicMock,
    mock_create_progress_update_from_successive_messages: MagicMock,
    include_menu_mod: bool,
    has_backup_path: bool,
):
    # Setup
    game_root = MagicMock(spec=Path())
    backup_files_path = MagicMock() if has_backup_path else None
    game_specific = MagicMock()
    progress_update = MagicMock()
    status_update = mock_create_progress_update_from_successive_messages.return_value

    patcher_data = {
        "menu_mod": include_menu_mod,
        "user_preferences": EchoesUserPreferences().as_json,
        "default_items": {
            "foo": "bar"
        },
    }

    # Run
    claris_randomizer.apply_patcher_file(game_root, backup_files_path,
                                         patcher_data, game_specific,
                                         progress_update)

    # Assert
    mock_create_progress_update_from_successive_messages.assert_called_once_with(
        progress_update, 400 if include_menu_mod else 100)
    mock_ensure_no_menu_mod.assert_called_once_with(game_root,
                                                    backup_files_path,
                                                    status_update)
    if has_backup_path:
        mock_create_pak_backups.assert_called_once_with(
            game_root, backup_files_path, status_update)
    else:
        mock_create_pak_backups.assert_not_called()
    mock_run_with_args.assert_called_once_with(
        claris_randomizer._base_args(game_root), json.dumps(patcher_data),
        "Randomized!", status_update)
    mock_apply_patches.assert_called_once_with(game_root, game_specific,
                                               EchoesUserPreferences(),
                                               {"foo": "bar"})

    if include_menu_mod:
        mock_add_menu_mod_to_files.assert_called_once_with(
            game_root, status_update)
    else:
        mock_add_menu_mod_to_files.assert_not_called()
Example #2
0
def test_base_args(mock_get_data_path: MagicMock,
                   mock_validate_game_files_path: MagicMock,
                   ):
    # Setup
    mock_get_data_path.return_value = Path("data")
    game_root = Path("root")

    # Run
    results = claris_randomizer._base_args(game_root)

    # Assert
    expected_results = [
        Path("data", "ClarisPrimeRandomizer", "Randomizer.exe"),
        Path("root"),
    ]

    assert results == expected_results
    mock_validate_game_files_path.assert_called_once_with(Path("root", "files"))
def test_base_args(mock_get_data_path: MagicMock,
                   mock_validate_game_files_path: MagicMock,
                   hud_memo_popup_removal: bool
                   ):
    # Setup
    mock_get_data_path.return_value = Path("data")
    game_root = Path("root")

    # Run
    results = claris_randomizer._base_args(game_root, hud_memo_popup_removal)

    # Assert
    expected_results = [
        Path("data", "ClarisPrimeRandomizer", "Randomizer.exe"),
        Path("root", "files"),
    ]
    if hud_memo_popup_removal:
        expected_results.append("-h")

    assert results == expected_results
    mock_validate_game_files_path.assert_called_once_with(Path("root", "files"))