mirror of
https://github.com/borgbackup/borg.git
synced 2026-06-09 08:51:54 -04:00
CI: add test_rest_repo_basics tests to localhost openssh server
This commit is contained in:
parent
8dbfc50cde
commit
5584bff830
2 changed files with 30 additions and 0 deletions
5
.github/workflows/ci.yml
vendored
5
.github/workflows/ci.yml
vendored
|
|
@ -243,8 +243,13 @@ jobs:
|
|||
# Start ssh-agent and add our key so paramiko can use the agent
|
||||
eval "$(ssh-agent -s)"
|
||||
ssh-add ~/.ssh/id_ed25519
|
||||
sudo python3 -m venv /opt/borgstore-venv
|
||||
sudo /opt/borgstore-venv/bin/pip install -U pip setuptools wheel
|
||||
sudo /opt/borgstore-venv/bin/pip install "borgstore[rest]"
|
||||
sudo ln -sf /opt/borgstore-venv/bin/borgstore-server-rest /usr/local/bin/borgstore-server-rest
|
||||
# Export SFTP test URL for tox via GITHUB_ENV
|
||||
echo "BORG_TEST_SFTP_REPO=sftp://sftpuser@localhost:22/borg/sftp-repo" >> $GITHUB_ENV
|
||||
echo "BORG_TEST_REST_REPO=rest://sftpuser@localhost:22/borg/rest-repo" >> $GITHUB_ENV
|
||||
|
||||
- name: Install and configure MinIO S3 server (test only)
|
||||
if: ${{ runner.os == 'Linux' && !contains(matrix.toxenv, 'mypy') && !contains(matrix.toxenv, 'docs') }}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ from . import cmd, create_regular_file, RK_ENCRYPTION, assert_dirs_equal
|
|||
|
||||
|
||||
SFTP_URL = os.environ.get("BORG_TEST_SFTP_REPO")
|
||||
REST_URL = os.environ.get("BORG_TEST_REST_REPO")
|
||||
S3_URL = os.environ.get("BORG_TEST_S3_REPO")
|
||||
|
||||
|
||||
|
|
@ -57,6 +58,30 @@ def test_rclone_repo_basics(archiver, tmp_path):
|
|||
cmd(archiver, "repo-delete")
|
||||
|
||||
|
||||
@pytest.mark.skipif(not REST_URL, reason="BORG_TEST_REST_REPO not set.")
|
||||
def test_rest_repo_basics(archiver):
|
||||
create_regular_file(archiver.input_path, "file1", size=100 * 1024)
|
||||
create_regular_file(archiver.input_path, "file2", size=10 * 1024)
|
||||
archiver.repository_location = REST_URL
|
||||
archive_name = "test-archive"
|
||||
cmd(archiver, "repo-create", RK_ENCRYPTION)
|
||||
cmd(archiver, "create", archive_name, "input")
|
||||
list_output = cmd(archiver, "repo-list")
|
||||
assert archive_name in list_output
|
||||
archive_list_output = cmd(archiver, "list", archive_name)
|
||||
assert "input/file1" in archive_list_output
|
||||
assert "input/file2" in archive_list_output
|
||||
with changedir("output"):
|
||||
cmd(archiver, "extract", archive_name)
|
||||
assert_dirs_equal(
|
||||
archiver.input_path, os.path.join(archiver.output_path, "input"), ignore_flags=True, ignore_xattrs=True
|
||||
)
|
||||
cmd(archiver, "delete", "-a", archive_name)
|
||||
list_output = cmd(archiver, "repo-list")
|
||||
assert archive_name not in list_output
|
||||
cmd(archiver, "repo-delete")
|
||||
|
||||
|
||||
@pytest.mark.skipif(not SFTP_URL, reason="BORG_TEST_SFTP_REPO not set.")
|
||||
def test_sftp_repo_basics(archiver):
|
||||
create_regular_file(archiver.input_path, "file1", size=100 * 1024)
|
||||
|
|
|
|||
Loading…
Reference in a new issue