From 58ec5e4ea6c4e07a62611d0b588638688c42899b Mon Sep 17 00:00:00 2001 From: sampo555 Date: Fri, 31 Aug 2012 22:00:36 +0300 Subject: Enable disabled repository instead of adding a new entry if a duplicate disabled entry already exists (LP: #1042916). --- aptsources/sourceslist.py | 2 +- tests/test_aptsources.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/aptsources/sourceslist.py b/aptsources/sourceslist.py index 61b75f75..40902d84 100644 --- a/aptsources/sourceslist.py +++ b/aptsources/sourceslist.py @@ -313,7 +313,7 @@ class SourcesList(object): for source in sources: # if there is a repo with the same (type, uri, dist) just add the # components - if source.disabled and set(source.comps) == comps: + if source.disabled and set(source.comps) == set(comps): source.disabled = False return source elif not source.disabled: diff --git a/tests/test_aptsources.py b/tests/test_aptsources.py index dcfb0682..41cfabb3 100644 --- a/tests/test_aptsources.py +++ b/tests/test_aptsources.py @@ -233,6 +233,20 @@ class TestAptSources(unittest.TestCase): for key in found: self.assertEqual(found[key], 1) + def test_enable_disabled(self): + """LP: #1042916: Test enabling disabled entry.""" + apt_pkg.config.set("Dir::Etc::sourcelist", "data/aptsources/" + "sources.list") + sources = aptsources.sourceslist.SourcesList(True, self.templates) + disabled = sources.add("deb", "http://fi.archive.ubuntu.com/ubuntu/", + "precise", + ["main"]) + disabled.set_enabled(False) + enabled = sources.add("deb", "http://fi.archive.ubuntu.com/ubuntu/", + "precise", + ["main"]) + self.assertEqual(disabled, enabled) + self.assertFalse(disabled.disabled) if __name__ == "__main__": os.chdir(os.path.dirname(__file__)) -- cgit v1.2.3