test_collection.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import pytest
  2. import duplitab
  3. import datetime
  4. @pytest.mark.parametrize(('init_kwargs', 'expected_attr'), [
  5. [
  6. {
  7. 'url': 'file://media/backup/a',
  8. },
  9. {
  10. 'url': 'file://media/backup/a',
  11. },
  12. ],
  13. [
  14. {
  15. 'url': 'sftp://user@server//media/backup/阿',
  16. },
  17. {
  18. 'url': 'sftp://user@server//media/backup/阿',
  19. },
  20. ],
  21. ])
  22. def test_collection_init(init_kwargs, expected_attr):
  23. c = duplitab.Collection(**init_kwargs)
  24. for name, value in expected_attr.items():
  25. assert getattr(c, name) == value
  26. @pytest.mark.parametrize(('init_kwargs', 'ex_class'), [
  27. [
  28. {
  29. },
  30. TypeError,
  31. ],
  32. ])
  33. def test_collection_init_fail(init_kwargs, ex_class):
  34. with pytest.raises(ex_class):
  35. duplitab.Collection(**init_kwargs)
  36. @pytest.mark.parametrize(('url', 'expected_status'), [
  37. [
  38. 'file://tests/data/collections/empty/multiple-full',
  39. duplitab._CollectionStatus(
  40. primary_chain=duplitab._ChainStatus(
  41. sets=[
  42. duplitab._SetStatus(backup_time=datetime.datetime(2016, 10, 27, 19, 57, 47)),
  43. duplitab._SetStatus(backup_time=datetime.datetime(2016, 10, 27, 19, 57, 54)),
  44. ]),
  45. ),
  46. ],
  47. ])
  48. def test_collection_request_status(url, expected_status):
  49. c = duplitab.Collection(url=url)
  50. assert expected_status == c.request_status()