Fix failing test and add "bootstrap" action to CLI reference docs (#697).
This commit is contained in:
parent
d84f1ec616
commit
0f9756e739
4 changed files with 16 additions and 5 deletions
|
@ -8,11 +8,11 @@ except ModuleNotFoundError: # pragma: nocover
|
||||||
import importlib.metadata as importlib_metadata
|
import importlib.metadata as importlib_metadata
|
||||||
|
|
||||||
import borgmatic.borg.create
|
import borgmatic.borg.create
|
||||||
|
import borgmatic.borg.state
|
||||||
import borgmatic.config.validate
|
import borgmatic.config.validate
|
||||||
import borgmatic.hooks.command
|
import borgmatic.hooks.command
|
||||||
import borgmatic.hooks.dispatch
|
import borgmatic.hooks.dispatch
|
||||||
import borgmatic.hooks.dump
|
import borgmatic.hooks.dump
|
||||||
from borgmatic.borg.state import DEFAULT_BORGMATIC_SOURCE_DIRECTORY
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ def create_borgmatic_manifest(location, config_paths, dry_run):
|
||||||
return
|
return
|
||||||
|
|
||||||
borgmatic_source_directory = location.get(
|
borgmatic_source_directory = location.get(
|
||||||
'borgmatic_source_directory', DEFAULT_BORGMATIC_SOURCE_DIRECTORY
|
'borgmatic_source_directory', borgmatic.borg.state.DEFAULT_BORGMATIC_SOURCE_DIRECTORY
|
||||||
)
|
)
|
||||||
|
|
||||||
borgmatic_manifest_path = os.path.expanduser(
|
borgmatic_manifest_path = os.path.expanduser(
|
||||||
|
|
|
@ -632,7 +632,7 @@ def make_parsers():
|
||||||
'bootstrap',
|
'bootstrap',
|
||||||
aliases=SUBPARSER_ALIASES['config_bootstrap'],
|
aliases=SUBPARSER_ALIASES['config_bootstrap'],
|
||||||
help='Extract the config files used to create a borgmatic repository',
|
help='Extract the config files used to create a borgmatic repository',
|
||||||
description='Extract config files that were used to create a borgmatic repository during the "create" operation',
|
description='Extract config files that were used to create a borgmatic repository during the "create" action',
|
||||||
add_help=False,
|
add_help=False,
|
||||||
)
|
)
|
||||||
config_bootstrap_group = config_bootstrap_parser.add_argument_group(
|
config_bootstrap_group = config_bootstrap_parser.add_argument_group(
|
||||||
|
|
|
@ -4,9 +4,9 @@ COPY . /app
|
||||||
RUN apk add --no-cache py3-pip py3-ruamel.yaml py3-ruamel.yaml.clib
|
RUN apk add --no-cache py3-pip py3-ruamel.yaml py3-ruamel.yaml.clib
|
||||||
RUN pip install --no-cache /app && generate-borgmatic-config && chmod +r /etc/borgmatic/config.yaml
|
RUN pip install --no-cache /app && generate-borgmatic-config && chmod +r /etc/borgmatic/config.yaml
|
||||||
RUN borgmatic --help > /command-line.txt \
|
RUN borgmatic --help > /command-line.txt \
|
||||||
&& for action in rcreate transfer create prune compact check extract export-tar mount umount restore rlist list rinfo info break-lock borg; do \
|
&& for action in rcreate transfer create prune compact check extract config "config bootstrap" export-tar mount umount restore rlist list rinfo info break-lock borg; do \
|
||||||
echo -e "\n--------------------------------------------------------------------------------\n" >> /command-line.txt \
|
echo -e "\n--------------------------------------------------------------------------------\n" >> /command-line.txt \
|
||||||
&& borgmatic "$action" --help >> /command-line.txt; done
|
&& borgmatic $action --help >> /command-line.txt; done
|
||||||
|
|
||||||
FROM docker.io/node:19.5.0-alpine as html
|
FROM docker.io/node:19.5.0-alpine as html
|
||||||
|
|
||||||
|
|
|
@ -111,10 +111,21 @@ def test_run_create_bails_if_repository_does_not_match():
|
||||||
|
|
||||||
|
|
||||||
def test_create_borgmatic_manifest_creates_manifest_file():
|
def test_create_borgmatic_manifest_creates_manifest_file():
|
||||||
|
flexmock(module.os.path).should_receive('join').with_args(
|
||||||
|
module.borgmatic.borg.state.DEFAULT_BORGMATIC_SOURCE_DIRECTORY, 'bootstrap', 'manifest.json'
|
||||||
|
).and_return('/home/user/.borgmatic/bootstrap/manifest.json')
|
||||||
flexmock(module.os.path).should_receive('exists').and_return(False)
|
flexmock(module.os.path).should_receive('exists').and_return(False)
|
||||||
flexmock(module.os).should_receive('makedirs').and_return(True)
|
flexmock(module.os).should_receive('makedirs').and_return(True)
|
||||||
|
|
||||||
flexmock(module.importlib_metadata).should_receive('version').and_return('1.0.0')
|
flexmock(module.importlib_metadata).should_receive('version').and_return('1.0.0')
|
||||||
|
flexmock(sys.modules['builtins']).should_receive('open').with_args(
|
||||||
|
'/home/user/.borgmatic/bootstrap/manifest.json', 'w'
|
||||||
|
).and_return(
|
||||||
|
flexmock(
|
||||||
|
__enter__=lambda *args: flexmock(write=lambda *args: None, close=lambda *args: None),
|
||||||
|
__exit__=lambda *args: None,
|
||||||
|
)
|
||||||
|
)
|
||||||
flexmock(module.json).should_receive('dump').and_return(True).once()
|
flexmock(module.json).should_receive('dump').and_return(True).once()
|
||||||
|
|
||||||
module.create_borgmatic_manifest({}, 'test.yaml', False)
|
module.create_borgmatic_manifest({}, 'test.yaml', False)
|
||||||
|
|
Loading…
Reference in a new issue