def test_backup(self):
        # clean up tmp dir
        rmtree('../tmp', ignore_errors=True)

        # config
        config = ConfigReader.get_config("files/test_config.yaml")

        # storage provider
        storage_provider = DummyStorageProvider()

        # backup as tar
        backup = Backup(config, storage_provider=storage_provider)
        backup.get_files_to_copy()
        backup.copy_files_to_tmp_dir(create_only_dirs=False)
        backup.tar_destination_dir()

        # assert tar exists with expected files and folders
        import tarfile
        tar = tarfile.open(config['tmp_tar_file_path'])
        found = [m.name for m in tar.getmembers()]
        self.assertTrue('tmp/technical/security/security.md' in found)
        self.assertTrue('tmp/technical/cloud/cloud.md' in found)
        self.assertFalse('tmp/technical/security/a.png' in found)
Example #2
0
from config_reader import ConfigReader
from backup import Backup
from storageprovider.azure_storage_provider import AzureStorageProvider

import logging
import sys

# set up logger
verbose_format = logging.Formatter('%(asctime)s - [%(levelname)s] - %(filename)s:%(lineno)d - %(message)s')
logger = logging.getLogger('cloud-backup-utility')
logger.setLevel(logging.DEBUG)
stdout_handler = logging.StreamHandler(sys.stdout)
stdout_handler.setFormatter(verbose_format)
logger.addHandler(stdout_handler)


# backup
config = ConfigReader.get_config("../config.yaml")

storage_provider = AzureStorageProvider(config['azure_sa_connection_string'])

backup = Backup(config, storage_provider=storage_provider)
backup.get_files_to_copy()
backup.copy_files_to_tmp_dir(create_only_dirs=False)
backup.tar_destination_dir()
backup.upload_to_cloud()