Hacked By AnonymousFox
import random
import string
from datetime import datetime
from hw_cpbackup.consts import TODAY
from test.mock.common import S3_MOCKDATA
class MockBackupRoutine:
"""Mock BackupRoutine class"""
def __init__(self):
self.null_routed = False
self.acct_packaged = False
self.upload_complete = False
self.backup = 1
self.suspended = 0
@property
def backup_root(self):
return '/backup/{today}/accounts/'.format(today=TODAY)
@property
def username(self):
return 'mockuser'
@property
def user_data(self):
_user_data = []
_user_data_obj = S3_MOCKDATA
_user_data.append(_user_data_obj)
for index, user_acct in enumerate(_user_data):
if self.whm_data()['data']['acct'][0]['backup'] != 1:
del _user_data[index]
continue
if self.whm_data()['data']['acct'][0]['suspended'] == 1:
del _user_data[index]
continue
if datetime.fromtimestamp(
self.whm_data()['data']['acct'][0]['unix_startdate']).strftime('%Y-%m-%d') == TODAY \
and not self.user_archive(username=user_acct['user']):
del _user_data[index]
continue
if self.null_routed:
del _user_data[index]
continue
return _user_data
def whm_data(self):
_whm_data = {
'data': {
'acct': [
{
'backup': self.backup,
'suspended': self.suspended,
'unix_startdate': int(datetime.today().strftime('%s'))
}
]
}
}
return _whm_data
@property
def backup_archives(self):
_backup_archives = ['%s.tar.gz' % self.username]
for _ in range(10):
_backup_archives.append('%s.tar.gz' % ''.join(
random.SystemRandom().choice(string.ascii_letters.lower() + string.digits) for _ in range(8)))
return _backup_archives
def user_archive(self, username, block=False):
"""Obtain archive for user"""
for archive in self.backup_archives:
if archive == username + '.tar.gz' and not block:
return archive
def pkg_account(self, username):
created_archive = '{root}cpmove-{user}.tar.gz'.format(root=self.backup_root, user=username)
self.acct_packaged = True
return created_archive
def run(self, pkg=False):
if self.user_data:
for user_account in self.user_data:
user = user_account['user']
if not self.user_archive(username=user, block=pkg):
self.pkg_account(username=user)
self.upload_complete = True
def reset(self):
self.null_routed = False
self.acct_packaged = False
self.upload_complete = False
self.backup = 1
self.suspended = 0
Hacked By AnonymousFox1.0, Coded By AnonymousFox