def test_version_max_returns_None_on_empty_list(self): self.mox.ReplayAll() self.assertEquals(self.apa.version_max([]), None) v2 = VersionAdapter(FakeVersion._create('2.0', [])) v21 = VersionAdapter(FakeVersion._create('2.0~1', [])) self.assertEquals(self.apa.version_max([v21]), v21) self.assertEquals(self.apa.version_max([v2, v21]), v2) self.assertEquals(self.apa.version_max([v21, v2]), v2)
def test_returns_none_in_common_case(self): """Common case means: package with identical, officially-available current and candidate versions, which is also the newest available version.""" self.fp.append_version(FakeVersion._create('1.2.3', ['Debian']), True) self.fp.append_version(FakeVersion._create('1.2.2', ['Debian'])) pa = PackageAdapter(self.fp) pa.candidate_version = pa.current_version self.assertEquals(self.checker.check(pa), None)
def _prepare_package_with_candidate_from_official_source_and_current_from_unofficial( self): self.fp.append_version(FakeVersion._create('1.2.2', ['NotDebian']), True) self.fp.append_version(FakeVersion._create('1.2.3', ['Debian'])) pa = PackageAdapter(self.fp) pa.candidate_version = VersionAdapter( FakeVersion._create('1.2.3', ['Debian'])) return pa
def test_returns_none_in_common_case_when_all_versions_available_additionally_from_unofficial_source( self): self.fp.append_version( FakeVersion._create('1.2.3', ['Debian', 'UnOfficial']), True) self.fp.append_version( FakeVersion._create('1.2.2', ['Debian', 'UnOfficial'])) pa = PackageAdapter(self.fp) pa.candidate_version = pa.current_version self.assertEquals(self.checker.check(pa), None)
def test_version_sort(self): self.mox.ReplayAll() self.assertEquals(self.apa.version_sort([]), []) v1 = VersionAdapter(FakeVersion._create('1', [])) v0 = VersionAdapter(FakeVersion._create('0', [])) v2 = VersionAdapter(FakeVersion._create('2.0', [])) v21 = VersionAdapter(FakeVersion._create('2.0~1', [])) self.assertEquals(self.apa.version_sort([v21]), [v21]) self.assertEquals(self.apa.version_sort([v1, v0, v21, v2]), [v2, v21, v1, v0])
def test_returns_a_status_object_on_package_with_candidate_from_unofficial_source(self): self.fp.append_version(FakeVersion._create('1.2.3', ['Unofficial']), True) self.fp.append_version(FakeVersion._create('1.2', ['Debian'])) pa = PackageAdapter(self.fp) pa.candidate_version = VersionAdapter(FakeVersion._create('1.2.5', ['NonDebian'])) status = self.checker.check(pa) self.assert_(status != None) self.assertEquals(status.package_name, 'afake') self.assertEquals(status.installed_version.string, '1.2.3') self.assertEquals(status.candidate_version.string, '1.2.5')
def test_returns_a_status_object_on_package_with_candidate_from_unofficial_source( self): self.fp.append_version(FakeVersion._create('1.2.3', ['Unofficial']), True) self.fp.append_version(FakeVersion._create('1.2', ['Debian'])) pa = PackageAdapter(self.fp) pa.candidate_version = VersionAdapter( FakeVersion._create('1.2.5', ['NonDebian'])) status = self.checker.check(pa) self.assert_(status != None) self.assertEquals(status.package_name, 'afake') self.assertEquals(status.installed_version.string, '1.2.3') self.assertEquals(status.candidate_version.string, '1.2.5')
def set_up_package_adapter_and_replay_all(self): mock_depcache_adapter = self.mox.CreateMock(DepCacheAdapter) self.va = VersionAdapter(FakeVersion._create('1.2.4', [])) mock_depcache_adapter.get_candidate_version(mox.Func(lambda pa: pa.name == 'afake')).AndReturn(self.va) self.mox.ReplayAll() self.p = PackageAdapterFactory(mock_depcache_adapter).create_package_adapter(self.fake)
def test_aborts_on_package_without_current_version(self): """CacheAdapter should not pass such objects to us. It's better to know in such cases. If there will ever be a need to support this, it can be changed.""" self.fp.append_version(FakeVersion._create('1.2.3', ['Debian']), True) pa = PackageAdapter(self.fp) pa.candidate_version = pa.current_version pa.current_version = None self.assertRaises(ValueError, self.checker.check, pa)
def set_up_package_adapter_and_replay_all(self): mock_depcache_adapter = self.mox.CreateMock(DepCacheAdapter) self.va = VersionAdapter(FakeVersion._create('1.2.4', [])) mock_depcache_adapter.get_candidate_version( mox.Func(lambda pa: pa.name == 'afake')).AndReturn(self.va) self.mox.ReplayAll() self.p = PackageAdapterFactory( mock_depcache_adapter).create_package_adapter(self.fake)
def test_does_not_abort_and_returns_a_status_object_on_package_without_candidate_version(self): """Because a candidate version is always reported by apt in normal situations, even when the only known version is installed and not available anywhere else. One case where no candidate version is reported is when there is a pin which cannot be met.""" self.fp.append_version(FakeVersion._create('1.2.3', ['Debian']), True) pa = PackageAdapter(self.fp) pa.candidate_version = None status = self.checker.check(pa) self.assert_(status != None)
def test_does_not_abort_and_returns_a_status_object_on_package_without_candidate_version( self): """Because a candidate version is always reported by apt in normal situations, even when the only known version is installed and not available anywhere else. One case where no candidate version is reported is when there is a pin which cannot be met.""" self.fp.append_version(FakeVersion._create('1.2.3', ['Debian']), True) pa = PackageAdapter(self.fp) pa.candidate_version = None status = self.checker.check(pa) self.assert_(status != None)
def _prepare_package_with_candidate_from_official_source_and_current_from_unofficial(self): self.fp.append_version(FakeVersion._create('1.2.2', ['NotDebian']), True) self.fp.append_version(FakeVersion._create('1.2.3', ['Debian'])) pa = PackageAdapter(self.fp) pa.candidate_version = VersionAdapter(FakeVersion._create('1.2.3', ['Debian'])) return pa
def test_returns_a_status_object_on_package_with_same_current_and_candidate_both_only_locally(self): self.fp.current_ver = FakeVersion._create('1.2.3', ['dpkg']) pa = PackageAdapter(self.fp) pa.candidate_version = pa.current_version self.assert_(self.checker.check(pa) != None)
def test_returns_none_in_common_case_when_all_versions_available_additionally_from_unofficial_source(self): self.fp.append_version(FakeVersion._create('1.2.3', ['Debian', 'UnOfficial']), True) self.fp.append_version(FakeVersion._create('1.2.2', ['Debian', 'UnOfficial'])) pa = PackageAdapter(self.fp) pa.candidate_version = pa.current_version self.assertEquals(self.checker.check(pa), None)
def test_analyze_version_only_in_dpkg_status_file_returns_true(self): v = VersionAdapter(FakeVersion._create('1.2.3', ['dpkg'])) self.assert_(self.vchecker.analyze(v))
def test_analyze_version_in_dpkg_status_file_and_both_official_and_unofficial_source_returns_false( self): v = VersionAdapter( FakeVersion._create('1.2.3', ['dpkg', 'Debian', 'NonDebian'])) self.assert_(not self.vchecker.analyze(v))
def test_analyze_version_in_dpkg_status_file_and_both_official_and_unofficial_source_returns_false(self): v = VersionAdapter(FakeVersion._create('1.2.3', ['dpkg', 'Debian', 'NonDebian'])) self.assert_(not self.vchecker.analyze(v))
def test_analyze_version_without_sources_returns_true(self): v = VersionAdapter(FakeVersion._create('1.2.3', [])) self.assert_(self.vchecker.analyze(v))
def test_returns_a_status_object_on_package_with_same_current_and_candidate_both_only_locally( self): self.fp.current_ver = FakeVersion._create('1.2.3', ['dpkg']) pa = PackageAdapter(self.fp) pa.candidate_version = pa.current_version self.assert_(self.checker.check(pa) != None)
def _prepare_package_with_candidate_different_from_current(self): self.fp.append_version(FakeVersion._create('1.2.3', ['Debian']), True) pa = PackageAdapter(self.fp) pa.candidate_version = VersionAdapter((FakeVersion._create('1.2.4', ['Debian']))) return pa
def test_package_without_candidate_version_and_current_unofficial(self): self.fp.current_ver = FakeVersion._create('1.2.2', ['NotDebian']) pa = PackageAdapter(self.fp) pa.candidate_version = None status = self.checker.check(pa) self.assert_(status != None)
def _prepare_package_with_candidate_different_from_current(self): self.fp.append_version(FakeVersion._create('1.2.3', ['Debian']), True) pa = PackageAdapter(self.fp) pa.candidate_version = VersionAdapter( (FakeVersion._create('1.2.4', ['Debian']))) return pa
def setUpAddAVersion(self, source = 'NonDebian', version = 'blah'): self.fake_package.append_version(FakeVersion._create(version, [source]))
def setUp_mangle_fake_package(self): self.setUpAddAVersion() self.fake_package.current_ver = FakeVersion('1.xx.yy') self.official_version = FakeVersion._create('2.3.4', ['Debian']) self.fake_package.append_version(self.official_version)