Coverage for frappe_manager / commands / reset.py: 59%
17 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-07-02 18:13 +0530
« prev ^ index » next coverage.py v7.13.5, created at 2026-07-02 18:13 +0530
1from typing import Annotated
3import typer
4from typer_examples import example
6from frappe_manager.commands import check_bench_migration_required
7from frappe_manager.output_manager import get_global_output_handler, spinner
8from frappe_manager.site_manager.site import Bench
9from frappe_manager.utils.callbacks import sitename_callback, sites_autocompletion_callback
12@example(
13 "Drop database and reinstall all apps",
14 "{benchname}",
15 detail="Drops the site's database and reinstalls all apps; destructive and intended for development or recovery.",
16 benchname="mybench",
17)
18@example(
19 "Reset with custom admin password",
20 "{benchname} --admin-pass newpassword",
21 detail="Resets the bench and sets the new administrator password after reinstalling apps.",
22 benchname="mybench",
23)
24def reset(
25 ctx: typer.Context,
26 benchname: Annotated[
27 str | None,
28 typer.Argument(
29 help="Name of the bench.",
30 autocompletion=sites_autocompletion_callback,
31 callback=sitename_callback,
32 ),
33 ] = None,
34 admin_pass: Annotated[
35 str | None,
36 typer.Option(help="Password for the 'Administrator' User."),
37 ] = None,
38):
39 """
40 Drop database and reinstall all apps.
42 Intended for resetting a site to a clean state; this operation removes site data.
43 """
45 check_bench_migration_required(benchname)
47 services_manager = ctx.obj["services"]
49 output = get_global_output_handler()
50 logger = ctx.obj.get("logger")
51 bench = Bench.get_object(benchname, services_manager, logger=logger, output_handler=output)
53 with spinner(output, f"Resetting {benchname}"):
54 bench.reset(admin_pass)