Mocking out glob() in test so it doesn't hit the filesystem, and simplifying comprehension.
This commit is contained in:
parent
45a2b9cded
commit
cf545ae93a
2 changed files with 37 additions and 4 deletions
|
@ -68,7 +68,7 @@ def create_archive(
|
||||||
attic archive.
|
attic archive.
|
||||||
'''
|
'''
|
||||||
sources = re.split('\s+', source_directories)
|
sources = re.split('\s+', source_directories)
|
||||||
sources = tuple(chain.from_iterable([glob(x) if glob(x) else [x] for x in sources]))
|
sources = tuple(chain.from_iterable(glob(x) or [x] for x in sources))
|
||||||
exclude_flags = ('--exclude-from', excludes_filename) if excludes_filename else ()
|
exclude_flags = ('--exclude-from', excludes_filename) if excludes_filename else ()
|
||||||
compression = storage_config.get('compression', None)
|
compression = storage_config.get('compression', None)
|
||||||
compression_flags = ('--compression', compression) if compression else ()
|
compression_flags = ('--compression', compression) if compression else ()
|
||||||
|
|
|
@ -177,16 +177,49 @@ def test_create_archive_with_umask_should_call_attic_with_umask_parameters():
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_create_archive_with_globs():
|
def test_create_archive_with_source_directories_glob_expands():
|
||||||
insert_subprocess_mock(('attic', 'create', 'repo::host-now', 'setup.py', 'setup.cfg'))
|
insert_subprocess_mock(('attic', 'create', 'repo::host-now', 'foo', 'food'))
|
||||||
insert_platform_mock()
|
insert_platform_mock()
|
||||||
insert_datetime_mock()
|
insert_datetime_mock()
|
||||||
|
flexmock(module).should_receive('glob').with_args('foo*').and_return(['foo', 'food'])
|
||||||
|
|
||||||
module.create_archive(
|
module.create_archive(
|
||||||
excludes_filename=None,
|
excludes_filename=None,
|
||||||
verbosity=None,
|
verbosity=None,
|
||||||
storage_config={},
|
storage_config={},
|
||||||
source_directories='setup*',
|
source_directories='foo*',
|
||||||
|
repository='repo',
|
||||||
|
command='attic',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_create_archive_with_non_matching_source_directories_glob_passes_through():
|
||||||
|
insert_subprocess_mock(('attic', 'create', 'repo::host-now', 'foo*'))
|
||||||
|
insert_platform_mock()
|
||||||
|
insert_datetime_mock()
|
||||||
|
flexmock(module).should_receive('glob').with_args('foo*').and_return([])
|
||||||
|
|
||||||
|
module.create_archive(
|
||||||
|
excludes_filename=None,
|
||||||
|
verbosity=None,
|
||||||
|
storage_config={},
|
||||||
|
source_directories='foo*',
|
||||||
|
repository='repo',
|
||||||
|
command='attic',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_create_archive_with_glob_should_call_attic_with_expanded_directories():
|
||||||
|
insert_subprocess_mock(('attic', 'create', 'repo::host-now', 'foo', 'food'))
|
||||||
|
insert_platform_mock()
|
||||||
|
insert_datetime_mock()
|
||||||
|
flexmock(module).should_receive('glob').with_args('foo*').and_return(['foo', 'food'])
|
||||||
|
|
||||||
|
module.create_archive(
|
||||||
|
excludes_filename=None,
|
||||||
|
verbosity=None,
|
||||||
|
storage_config={},
|
||||||
|
source_directories='foo*',
|
||||||
repository='repo',
|
repository='repo',
|
||||||
command='attic',
|
command='attic',
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue