def test_mirror_search_many2(self): """test_mirror_search_many3 - Test both mirrors specs at once""" pmir = "http://us.archive.ubuntu.com/ubuntu/" smir = "http://security.ubuntu.com/ubuntu/" cfg = {"primary": [{'arches': ["default"], "uri": pmir, "search": ["pfailme", "foo"]}], "security": [{'arches': ["default"], "uri": smir, "search": ["sfailme", "bar"]}]} arch = 'amd64' # should be called only once per type, despite two mirror configs with mock.patch.object(apt_config, 'get_mirror', return_value="http://mocked/foo") as mockgm: mirrors = apt_config.find_apt_mirror_info(cfg, arch) calls = [call(cfg, 'primary', arch), call(cfg, 'security', arch)] mockgm.assert_has_calls(calls) # should not be called, since primary is specified with mock.patch.object(apt_config, 'search_for_mirror') as mockse: mirrors = apt_config.find_apt_mirror_info(cfg, arch) mockse.assert_not_called() self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_mirror_default(self): """test_mirror_default - Test without defining a mirror""" arch = util.get_architecture() default_mirrors = apt_config.get_default_mirrors(arch) pmir = default_mirrors["PRIMARY"] smir = default_mirrors["SECURITY"] mirrors = apt_config.find_apt_mirror_info({}, arch) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_mirror_arches(self): """test_mirror_arches - Test arches selection of mirror""" pmir = "http://my-primary.ubuntu.com/ubuntu/" smir = "http://my-security.ubuntu.com/ubuntu/" arch = 'ppc64el' cfg = {"primary": [{'arches': ["default"], "uri": "notthis-primary"}, {'arches': [arch], "uri": pmir}], "security": [{'arches': ["default"], "uri": "nothis-security"}, {'arches': [arch], "uri": smir}]} mirrors = apt_config.find_apt_mirror_info(cfg, arch) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_mirror(self): """test_mirror - Test defining a mirror""" pmir = "http://us.archive.ubuntu.com/ubuntu/" smir = "http://security.ubuntu.com/ubuntu/" cfg = {"primary": [{'arches': ["default"], "uri": pmir}], "security": [{'arches': ["default"], "uri": smir}]} mirrors = apt_config.find_apt_mirror_info(cfg, 'amd64') self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_mirror_arches_sysdefault(self): """test_mirror_arches - Test arches falling back to sys default""" arch = util.get_architecture() default_mirrors = apt_config.get_default_mirrors(arch) pmir = default_mirrors["PRIMARY"] smir = default_mirrors["SECURITY"] cfg = {"primary": [{'arches': ["thisarchdoesntexist_64"], "uri": "notthis"}, {'arches': ["thisarchdoesntexist"], "uri": "notthiseither"}], "security": [{'arches': ["thisarchdoesntexist"], "uri": "nothat"}, {'arches': ["thisarchdoesntexist_64"], "uri": "nothateither"}]} mirrors = apt_config.find_apt_mirror_info(cfg, arch) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_mirror_arches_default(self): """test_mirror_arches - Test falling back to default arch""" pmir = "http://us.archive.ubuntu.com/ubuntu/" smir = "http://security.ubuntu.com/ubuntu/" cfg = {"primary": [{'arches': ["default"], "uri": pmir}, {'arches': ["thisarchdoesntexist"], "uri": "notthis"}], "security": [{'arches': ["thisarchdoesntexist"], "uri": "nothat"}, {'arches': ["default"], "uri": smir}]} mirrors = apt_config.find_apt_mirror_info(cfg, 'amd64') self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_mirror_search(self): """test_mirror_search - Test searching mirrors in a list mock checks to avoid relying on network connectivity""" pmir = "http://us.archive.ubuntu.com/ubuntu/" smir = "http://security.ubuntu.com/ubuntu/" cfg = {"primary": [{'arches': ["default"], "search": ["pfailme", pmir]}], "security": [{'arches': ["default"], "search": ["sfailme", smir]}]} with mock.patch.object(apt_config, 'search_for_mirror', side_effect=[pmir, smir]) as mocksearch: mirrors = apt_config.find_apt_mirror_info(cfg, 'amd64') calls = [call(["pfailme", pmir]), call(["sfailme", smir])] mocksearch.assert_has_calls(calls) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_mir_apt_list_rename(self, m_get_architecture): """test_mir_apt_list_rename - Test find mirror and apt list renaming""" pre = "/var/lib/apt/lists" # filenames are archive dependent arch = 's390x' m_get_architecture.return_value = arch component = "ubuntu-ports" archive = "ports.ubuntu.com" cfg = {'primary': [{'arches': ["default"], 'uri': 'http://test.ubuntu.com/%s/' % component}], 'security': [{'arches': ["default"], 'uri': 'http://testsec.ubuntu.com/%s/' % component}]} post = ("%s_dists_%s-updates_InRelease" % (component, distro.lsb_release()['codename'])) fromfn = ("%s/%s_%s" % (pre, archive, post)) tofn = ("%s/test.ubuntu.com_%s" % (pre, post)) mirrors = apt_config.find_apt_mirror_info(cfg, arch) self.assertEqual(mirrors['MIRROR'], "http://test.ubuntu.com/%s/" % component) self.assertEqual(mirrors['PRIMARY'], "http://test.ubuntu.com/%s/" % component) self.assertEqual(mirrors['SECURITY'], "http://testsec.ubuntu.com/%s/" % component) with mock.patch.object(os, 'rename') as mockren: with mock.patch.object(glob, 'glob', return_value=[fromfn]): apt_config.rename_apt_lists(mirrors, TARGET) mockren.assert_any_call(fromfn, tofn)