mirror of
https://github.com/borgmatic-collective/borgmatic.git
synced 2026-07-22 10:13:00 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fef441a8ff | ||
|
|
c1ddc4268b | ||
|
|
e323290e61 | ||
|
|
1ab44d4201 | ||
|
|
71b1c3dfb0 | ||
|
|
695930a607 | ||
|
|
eb2a4ff1f0 | ||
|
|
531d5c80c0 |
@@ -13,5 +13,6 @@ matrix:
|
||||
- 3.7
|
||||
- 3.8
|
||||
PYTHON_VERSION:
|
||||
- 3.5
|
||||
- 3.6
|
||||
- 3.7
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
1.2.9
|
||||
* #102: Fix for syntax error that occurred in Python 3.5 and below.
|
||||
* Make automated tests support running in Python 3.5.
|
||||
|
||||
1.2.8
|
||||
* #73: Enable consistency checks for only certain repositories via "check_repositories" option in
|
||||
borgmatic's consistency configuration. Handy for large repositories that take forever to check.
|
||||
|
||||
@@ -445,9 +445,6 @@ cd borgmatic
|
||||
tox
|
||||
```
|
||||
|
||||
Note that while running borgmatic itself only requires Python 3+, running
|
||||
borgmatic's tests require Python 3.6+.
|
||||
|
||||
If when running tests, you get an error from the
|
||||
[Black](https://black.readthedocs.io/en/stable/) code formatter about files
|
||||
that would be reformatted, you can ask Black to format them for you via the
|
||||
|
||||
@@ -189,7 +189,7 @@ def _run_commands_on_repository(
|
||||
remote_path,
|
||||
retention,
|
||||
storage,
|
||||
unexpanded_repository,
|
||||
unexpanded_repository
|
||||
): # pragma: no cover
|
||||
repository = os.path.expanduser(unexpanded_repository)
|
||||
dry_run_label = ' (dry run; not making any changes)' if args.dry_run else ''
|
||||
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
if which black; then
|
||||
black --skip-string-normalization --line-length 100 --check .
|
||||
else
|
||||
echo "Skipping black due to not being installed."
|
||||
fi
|
||||
+2
-2
@@ -27,8 +27,8 @@ twine upload -r pypi dist/borgmatic-*.tar.gz
|
||||
twine upload -r pypi dist/borgmatic-*-py3-none-any.whl
|
||||
|
||||
# Set release changelogs on projects.evoworx.org and GitHub.
|
||||
release_changelog=$(sed '/^$/q' NEWS |grep '^\s*\*')
|
||||
escaped_release_changelog=$(echo $release_changelog | sed -z 's/\n/\\n/g')
|
||||
release_changelog="$(cat NEWS | sed '/^$/q' | grep -v '^\S')"
|
||||
escaped_release_changelog="$(echo "$release_changelog" | sed -z 's/\n/\\n/g' | sed -z 's/\"/\\"/g')"
|
||||
curl --request POST \
|
||||
"https://projects.torsion.org/api/v1/repos/witten/borgmatic/releases?access_token=$projects_token" \
|
||||
--header "Accept: application/json" \
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
|
||||
VERSION = '1.2.8'
|
||||
VERSION = '1.2.9'
|
||||
|
||||
|
||||
setup(
|
||||
@@ -30,6 +30,5 @@ setup(
|
||||
},
|
||||
obsoletes=['atticmatic'],
|
||||
install_requires=('pykwalify>=1.6.0,<14.06', 'ruamel.yaml>0.15.0,<0.16.0', 'setuptools'),
|
||||
tests_require=('flexmock', 'pytest'),
|
||||
include_package_data=True,
|
||||
)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
appdirs==1.4.3
|
||||
atomicwrites==1.2.1
|
||||
attrs==18.2.0
|
||||
black==18.9b0
|
||||
black==18.9b0; python_version >= '3.6'
|
||||
Click==7.0
|
||||
coverage==4.5.1
|
||||
docopt==0.6.2
|
||||
|
||||
@@ -11,12 +11,14 @@ def generate_configuration(config_path, repository_path):
|
||||
Generate borgmatic configuration into a file at the config path, and update the defaults so as
|
||||
to work for testing (including injecting the given repository path).
|
||||
'''
|
||||
subprocess.check_call(f'generate-borgmatic-config --destination {config_path}'.split(' '))
|
||||
subprocess.check_call(
|
||||
'generate-borgmatic-config --destination {}'.format(config_path).split(' ')
|
||||
)
|
||||
config = (
|
||||
open(config_path)
|
||||
.read()
|
||||
.replace('user@backupserver:sourcehostname.borg', repository_path)
|
||||
.replace('- /home', f'- {config_path}')
|
||||
.replace('- /home', '- {}'.format(config_path))
|
||||
.replace('- /etc', '')
|
||||
.replace('- /var/log/syslog*', '')
|
||||
)
|
||||
@@ -32,7 +34,7 @@ def test_borgmatic_command():
|
||||
|
||||
try:
|
||||
subprocess.check_call(
|
||||
f'borg init --encryption repokey {repository_path}'.split(' '),
|
||||
'borg init --encryption repokey {}'.format(repository_path).split(' '),
|
||||
env={'BORG_PASSPHRASE': '', **os.environ},
|
||||
)
|
||||
|
||||
@@ -40,11 +42,10 @@ def test_borgmatic_command():
|
||||
generate_configuration(config_path, repository_path)
|
||||
|
||||
# Run borgmatic to generate a backup archive, and then list it to make sure it exists.
|
||||
subprocess.check_call(f'borgmatic --config {config_path}'.split(' '))
|
||||
subprocess.check_call('borgmatic --config {}'.format(config_path).split(' '))
|
||||
output = subprocess.check_output(
|
||||
f'borgmatic --config {config_path} --list --json'.split(' '),
|
||||
encoding=sys.stdout.encoding,
|
||||
)
|
||||
'borgmatic --config {} --list --json'.format(config_path).split(' ')
|
||||
).decode(sys.stdout.encoding)
|
||||
parsed_output = json.loads(output)
|
||||
|
||||
assert len(parsed_output) == 1
|
||||
@@ -52,9 +53,8 @@ def test_borgmatic_command():
|
||||
|
||||
# Also exercise the info flag.
|
||||
output = subprocess.check_output(
|
||||
f'borgmatic --config {config_path} --info --json'.split(' '),
|
||||
encoding=sys.stdout.encoding,
|
||||
)
|
||||
'borgmatic --config {} --info --json'.format(config_path).split(' ')
|
||||
).decode(sys.stdout.encoding)
|
||||
parsed_output = json.loads(output)
|
||||
|
||||
assert len(parsed_output) == 1
|
||||
|
||||
@@ -5,10 +5,11 @@ skipsdist = True
|
||||
[testenv]
|
||||
usedevelop = True
|
||||
deps = -rtest_requirements.txt
|
||||
whitelist_externals = sh
|
||||
commands =
|
||||
py.test --cov-report term-missing:skip-covered --cov=borgmatic --ignore=tests/end-to-end \
|
||||
tests []
|
||||
black --skip-string-normalization --line-length 100 --check .
|
||||
sh scripts/black
|
||||
flake8 .
|
||||
|
||||
[testenv:black]
|
||||
|
||||
Reference in New Issue
Block a user