from borgmatic.commands import borgmatic from flexmock import flexmock import json import pytest import sys def test__run_commands_handles_multiple_json_outputs_in_array(): # THEN (flexmock(borgmatic) .should_receive("_run_commands_on_repository") .times(3) .replace_with(lambda args, consistency, json_results, local_path, location, remote_path, retention, storage, unexpanded_repository: json_results.append({"whatever": unexpanded_repository})) ) (flexmock(sys.stdout) .should_call("write") .with_args(json.dumps(json.loads(''' [ {"whatever": "fake_repo1"}, {"whatever": "fake_repo2"}, {"whatever": "fake_repo3"} ] '''))) ) borgmatic._run_commands(args=flexmock(json=True), consistency=None, local_path=None, location={"repositories": [ "fake_repo1", "fake_repo2", "fake_repo3" ]}, remote_path=None, retention=None, storage=None)