86 lines
2.2 KiB
Python
86 lines
2.2 KiB
Python
from flexmock import flexmock
|
|
|
|
from atticmatic import attic as module
|
|
|
|
|
|
def insert_subprocess_mock(check_call_command):
|
|
subprocess = flexmock()
|
|
subprocess.should_receive('check_call').with_args(check_call_command).once()
|
|
flexmock(module).subprocess = subprocess
|
|
|
|
|
|
def insert_platform_mock():
|
|
flexmock(module).platform = flexmock().should_receive('node').and_return('host').mock
|
|
|
|
|
|
def insert_datetime_mock():
|
|
flexmock(module).datetime = flexmock().should_receive('now').and_return(
|
|
flexmock().should_receive('isoformat').and_return('now').mock
|
|
).mock
|
|
|
|
|
|
def test_create_archive_should_call_attic_with_parameters():
|
|
insert_subprocess_mock(
|
|
('attic', 'create', '--exclude-from', 'excludes', 'repo::host-now', 'foo', 'bar'),
|
|
)
|
|
insert_platform_mock()
|
|
insert_datetime_mock()
|
|
|
|
module.create_archive(
|
|
excludes_filename='excludes',
|
|
verbose=False,
|
|
source_directories='foo bar',
|
|
repository='repo',
|
|
)
|
|
|
|
|
|
def test_create_archive_with_verbose_should_call_attic_with_verbose_parameters():
|
|
insert_subprocess_mock(
|
|
(
|
|
'attic', 'create', '--exclude-from', 'excludes', 'repo::host-now', 'foo', 'bar',
|
|
'--verbose', '--stats',
|
|
),
|
|
)
|
|
insert_platform_mock()
|
|
insert_datetime_mock()
|
|
|
|
module.create_archive(
|
|
excludes_filename='excludes',
|
|
verbose=True,
|
|
source_directories='foo bar',
|
|
repository='repo',
|
|
)
|
|
|
|
|
|
def test_prune_archives_should_call_attic_with_parameters():
|
|
insert_subprocess_mock(
|
|
(
|
|
'attic', 'prune', 'repo', '--keep-daily', '1', '--keep-weekly', '2', '--keep-monthly',
|
|
'3',
|
|
),
|
|
)
|
|
|
|
module.prune_archives(
|
|
repository='repo',
|
|
verbose=False,
|
|
keep_daily=1,
|
|
keep_weekly=2,
|
|
keep_monthly=3
|
|
)
|
|
|
|
|
|
def test_prune_archives_with_verbose_should_call_attic_with_verbose_parameters():
|
|
insert_subprocess_mock(
|
|
(
|
|
'attic', 'prune', 'repo', '--keep-daily', '1', '--keep-weekly', '2', '--keep-monthly',
|
|
'3', '--verbose',
|
|
),
|
|
)
|
|
|
|
module.prune_archives(
|
|
repository='repo',
|
|
verbose=True,
|
|
keep_daily=1,
|
|
keep_weekly=2,
|
|
keep_monthly=3
|
|
)
|