test_flags.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. from flexmock import flexmock
  2. from borgmatic.borg import flags as module
  3. def test_make_flags_formats_string_value():
  4. assert module.make_flags('foo', 'bar') == ('--foo', 'bar')
  5. def test_make_flags_formats_integer_value():
  6. assert module.make_flags('foo', 3) == ('--foo', '3')
  7. def test_make_flags_formats_true_value():
  8. assert module.make_flags('foo', True) == ('--foo',)
  9. def test_make_flags_omits_false_value():
  10. assert module.make_flags('foo', False) == ()
  11. def test_make_flags_formats_name_with_underscore():
  12. assert module.make_flags('posix_me_harder', 'okay') == ('--posix-me-harder', 'okay')
  13. def test_make_flags_from_arguments_flattens_and_sorts_multiple_arguments():
  14. flexmock(module).should_receive('make_flags').with_args('foo', 'bar').and_return(('foo', 'bar'))
  15. flexmock(module).should_receive('make_flags').with_args('baz', 'quux').and_return(
  16. ('baz', 'quux')
  17. )
  18. arguments = flexmock(foo='bar', baz='quux')
  19. assert module.make_flags_from_arguments(arguments) == ('baz', 'quux', 'foo', 'bar')
  20. def test_make_flags_from_arguments_excludes_underscored_argument_names():
  21. flexmock(module).should_receive('make_flags').with_args('foo', 'bar').and_return(('foo', 'bar'))
  22. arguments = flexmock(foo='bar', _baz='quux')
  23. assert module.make_flags_from_arguments(arguments) == ('foo', 'bar')
  24. def test_make_flags_from_arguments_omits_excludes():
  25. flexmock(module).should_receive('make_flags').with_args('foo', 'bar').and_return(('foo', 'bar'))
  26. arguments = flexmock(foo='bar', baz='quux')
  27. assert module.make_flags_from_arguments(arguments, excludes=('baz', 'other')) == ('foo', 'bar')
  28. def test_make_repository_flags_with_borg_features_includes_repo_flag():
  29. flexmock(module.feature).should_receive('available').and_return(True)
  30. assert module.make_repository_flags(repository='repo', local_borg_version='1.2.3') == (
  31. '--repo',
  32. 'repo',
  33. )
  34. def test_make_repository_flags_without_borg_features_includes_omits_flag():
  35. flexmock(module.feature).should_receive('available').and_return(False)
  36. assert module.make_repository_flags(repository='repo', local_borg_version='1.2.3') == ('repo',)
  37. def test_make_repository_archive_flags_with_borg_features_separates_repository_and_archive():
  38. flexmock(module.feature).should_receive('available').and_return(True)
  39. assert module.make_repository_archive_flags(
  40. repository='repo', archive='archive', local_borg_version='1.2.3'
  41. ) == ('--repo', 'repo', 'archive',)
  42. def test_make_repository_archive_flags_with_borg_features_joins_repository_and_archive():
  43. flexmock(module.feature).should_receive('available').and_return(False)
  44. assert module.make_repository_archive_flags(
  45. repository='repo', archive='archive', local_borg_version='1.2.3'
  46. ) == ('repo::archive',)