test_audiogen_mostrecent.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import tempfile
  2. import os
  3. import time
  4. import pytest
  5. from larigira.audiogen_mostrecent import recent_choose
  6. @pytest.fixture
  7. def now(request):
  8. return int(time.time())
  9. @pytest.fixture
  10. def yesterday(request):
  11. return int(time.time()) - 24 * 60 * 60
  12. @pytest.fixture
  13. def empty_dir():
  14. dirpath = tempfile.mkdtemp(prefix="mostrecent.")
  15. yield dirpath
  16. os.removedirs(dirpath)
  17. @pytest.fixture
  18. def dir_with_old_file(empty_dir):
  19. fd, fname = tempfile.mkstemp(prefix="old.", dir=empty_dir)
  20. os.close(fd)
  21. os.utime(fname, times=(0, 0))
  22. yield empty_dir
  23. os.unlink(fname)
  24. @pytest.fixture
  25. def dir_with_yesterday_file(empty_dir, yesterday):
  26. fd, fname = tempfile.mkstemp(prefix="yesterday.", dir=empty_dir)
  27. os.close(fd)
  28. os.utime(fname, times=(yesterday, yesterday))
  29. yield empty_dir
  30. os.unlink(fname)
  31. @pytest.fixture
  32. def dir_with_new_file(dir_with_old_file, now):
  33. fd, fname = tempfile.mkstemp(prefix="new.", dir=dir_with_old_file)
  34. os.close(fd)
  35. os.utime(fname, times=(now, now))
  36. yield dir_with_old_file
  37. os.unlink(fname)
  38. @pytest.fixture
  39. def dir_with_two_recent_files(dir_with_yesterday_file, now):
  40. fd, fname = tempfile.mkstemp(prefix="new.", dir=dir_with_yesterday_file)
  41. os.close(fd)
  42. os.utime(fname, times=(now, now))
  43. yield dir_with_yesterday_file
  44. os.unlink(fname)
  45. def test_empty_is_empty(empty_dir, now):
  46. """nothing can be picked from a empty dir"""
  47. picked = recent_choose([empty_dir], 1, now)
  48. assert len(picked) == 0
  49. def test_old_files(dir_with_old_file, now):
  50. picked = recent_choose([dir_with_old_file], 1, now)
  51. assert len(picked) == 0
  52. def test_new_files_found(dir_with_new_file):
  53. picked = recent_choose([dir_with_new_file], 1, 1)
  54. assert len(picked) == 1
  55. assert os.path.basename(picked[0]).startswith("new.")
  56. def test_only_new_files_found(dir_with_new_file):
  57. picked = recent_choose([dir_with_new_file], 2, 1)
  58. assert len(picked) == 1
  59. assert os.path.basename(picked[0]).startswith("new.")
  60. def test_correct_sorting(dir_with_two_recent_files):
  61. picked = recent_choose([dir_with_two_recent_files], 1, 1)
  62. assert len(picked) == 1
  63. assert not os.path.basename(picked[0]).startswith("yesterday.")
  64. assert os.path.basename(picked[0]).startswith("new.")