def test_finds_rotated_files(self):
        rotated_files = list(rotator._rotated_files("tests/test_dir_a/mydump"))
        self.assertEqual(len(rotated_files), 5)

        first_path, first_rotation_id = rotated_files[0]
        # no guaranteed order to the globbing, so this cannot verify exactly
        self.assertRegexpMatches(
            first_path,
            "tests\/test_dir_a\/mydump.*2015-12-02.*\.backup-[3-7].*")
        self.assertGreaterEqual(first_rotation_id, 3)
    def test_locate_files_to_delete(self):
        rotated_files = list(rotator._rotated_files("tests/test_dir_a/mydump"))

        # 5 slots
        to_delete = list(rotator._locate_files_to_delete(
            SimpleRotator(5), rotated_files, 8))
        self.assertEqual(len(to_delete), 1)

        # 10 slots (don't delete anything)
        to_delete = list(rotator._locate_files_to_delete(
            SimpleRotator(10), rotated_files, 8))
        self.assertEqual(len(to_delete), 0)

        # 2 slots (delete a #4 and #6)
        to_delete = list(rotator._locate_files_to_delete(
            SimpleRotator(2), rotated_files, 8))
        self.assertEqual(len(to_delete), 2)
 def test_finds_next_rotation_id(self):
     rotated_files = list(rotator._rotated_files("tests/test_dir_a/mydump"))
     x = rotator._next_rotation_id(rotated_files)
     self.assertEqual(x, 8)
 def test_next_rotation_id_is_0_without_match(self):
     rotated_files = list(rotator._rotated_files("tests/test_dir_a/foo"))
     x = rotator._next_rotation_id(rotated_files)
     self.assertEqual(x, 0)
 def test_rotated_files_respects_name(self):
     # there are no files matching "another_name"
     rotated_files = list(rotator._rotated_files("tests/test_dir_a/foo"))
     self.assertEqual(len(rotated_files), 0)