def test_does_not_get_rid_of_old_repos_by_ref_configured_in_days(self, session, fake, monkeypatch): conf.purge_rotation = {'ceph': {'ref': {'firefly': {'days': 70}}}, '__force_dict__': True} fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) session.commit() recurring.purge_repos(_now=self.now) assert len(Repo.query.all()) == 1
def test_does_not_get_rid_of_old_repos_by_flavor_configured_with_offset(self, session, fake, monkeypatch): conf.purge_rotation = {'ceph': {'flavor': {'default': {'keep_minimum': 1}}}, '__force_dict__': True} fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) session.commit() recurring.purge_repos(_now=self.now) assert len(Repo.query.all()) == 1
def test_does_not_get_rid_of_old_repos(self, session, fake, monkeypatch): conf.purge_repos = False fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) session.commit() recurring.purge_repos(_now=self.now) assert len(Repo.query.all()) == 1
def test_get_rid_of_new_and_old_repos_without_days(self, session, fake, monkeypatch): Repo( project=Project('nfs-ganesha'), ref='next', distro='centos', distro_version='7', flavor='ceph_master', ) conf.purge_rotation = { 'nfs-ganesha': { 'flavor': { 'ceph_master': { 'keep_minimum': 0 } }, 'ref': { 'next': { 'keep_minimum': 0 } } }, '__force_dict__': True } fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) session.commit() recurring.purge_repos(_now=self.now) assert len(Repo.query.all()) == 0
def test_leaves_newer_repos_behind(self, session, fake, monkeypatch): session.commit() fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) session.commit() recurring.purge_repos(_now=self.now) assert len(Repo.query.all()) == 1
def test_gets_rid_of_old_repos_paths(self, session, fake, monkeypatch, tmpdir): repo_path = str(tmpdir) package = tmpdir.join('ceph-1.0.rpm') package.write("101010101010") self.repo.path = str(repo_path) fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) session.commit() recurring.purge_repos(_now=self.now) assert os.path.exists(repo_path) is False
def test_gets_rid_of_other_repos(self, session, fake, monkeypatch): Repo( self.p, ref='hammer', distro='centos', distro_version='7', ) conf.purge_rotation = {'ceph': {'ref': {'firefly': {'keep_minimum': 1}}}, '__force_dict__': True} fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) session.commit() recurring.purge_repos(_now=self.now) assert Repo.query.first().ref == 'firefly'
def test_get_rid_of_new_and_old_repos_by_ref_configured_with_offset(self, session, fake, monkeypatch): Repo( project=Project('nfs-ganesha'), ref='next', distro='centos', distro_version='7', flavor='ceph_master', ) conf.purge_rotation = {'nfs-ganesha': {'ref': {'next': {'keep_minimum': 0}}}, '__force_dict__': True} fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) session.commit() recurring.purge_repos(_now=self.now) assert len(Repo.query.all()) == 0
def test_if_disabled_it_does_not_purge_binaries(self, session, fake, monkeypatch, tmpdir): conf.purge_repos = False p = tmpdir.join('binary') p.write('contents') fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) Binary( 'ceph-10.0.0.rpm', self.p, distro='centos', distro_version='6', arch='i386', path=str(p), repo=self.repo ) session.commit() recurring.purge_repos(_now=self.now) assert len(Binary.query.all()) == 1
def test_ignores_binaries_that_do_not_exist(self, session, fake, monkeypatch, tmpdir): p = tmpdir.join('binary') p.write_text(u'contents', encoding='utf-8') fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) Binary( 'ceph-10.0.0.rpm', self.p, distro='centos', distro_version='6', arch='i386', path=p.strpath, repo=self.repo ) session.commit() # remove the binary, to ensure that the purge can continue os.remove(str(p)) assert len(Binary.query.all()) == 1 recurring.purge_repos(_now=self.now) assert len(Binary.query.all()) == 0
def test_ignores_binaries_that_do_not_exist(self, session, fake, monkeypatch, tmpdir): p = tmpdir.join('binary') p.write('contents') fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) Binary( 'ceph-10.0.0.rpm', self.p, distro='centos', distro_version='6', arch='i386', path=str(p), repo=self.repo ) session.commit() # remove the binary, to ensure that the purge can continue os.remove(str(p)) assert len(Binary.query.all()) == 1 recurring.purge_repos(_now=self.now) assert len(Binary.query.all()) == 0
def test_gets_rid_of_old_repos(self, session, fake, monkeypatch): fake_datetime = fake(utcnow=lambda: self.old, now=self.now) monkeypatch.setattr(datetime, 'datetime', fake_datetime) session.commit() recurring.purge_repos(_now=self.now) assert Repo.query.all() == []