def test_apt_v3_mirror_search_many2(self): """test_apt_v3_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 mycloud = None with mock.patch.object(cc_apt_configure, 'get_mirror', return_value="http://mocked/foo") as mockgm: mirrors = cc_apt_configure.find_apt_mirror_info(cfg, mycloud, arch) calls = [call(cfg, 'primary', arch, mycloud), call(cfg, 'security', arch, mycloud)] mockgm.assert_has_calls(calls) # should not be called, since primary is specified with mock.patch.object(cc_apt_configure, 'search_for_mirror') as mockse: mirrors = cc_apt_configure.find_apt_mirror_info(cfg, None, arch) mockse.assert_not_called() self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror_search_many2(self): """test_apt_v3_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 mycloud = None with mock.patch.object(cc_apt_configure, 'get_mirror', return_value="http://mocked/foo") as mockgm: mirrors = cc_apt_configure.find_apt_mirror_info(cfg, mycloud, arch) calls = [call(cfg, 'primary', arch, mycloud), call(cfg, 'security', arch, mycloud)] mockgm.assert_has_calls(calls) # should not be called, since primary is specified with mock.patch.object(cc_apt_configure, 'search_for_mirror') as mockse: mirrors = cc_apt_configure.find_apt_mirror_info(cfg, None, arch) mockse.assert_not_called() self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror_search_dns(self): """test_apt_v3_mirror_search_dns - Test searching dns patterns""" pmir = "phit" smir = "shit" arch = 'amd64' mycloud = self._get_cloud('ubuntu') cfg = { "primary": [{ 'arches': ["default"], "search_dns": True }], "security": [{ 'arches': ["default"], "search_dns": True }] } with mock.patch.object(cc_apt_configure, 'get_mirror', return_value="http://mocked/foo") as mockgm: mirrors = cc_apt_configure.find_apt_mirror_info(cfg, mycloud, arch) calls = [ call(cfg, 'primary', arch, mycloud), call(cfg, 'security', arch, mycloud) ] mockgm.assert_has_calls(calls) with mock.patch.object(cc_apt_configure, 'search_for_mirror_dns', return_value="http://mocked/foo") as mocksdns: mirrors = cc_apt_configure.find_apt_mirror_info(cfg, mycloud, arch) calls = [ call(True, 'primary', cfg, mycloud), call(True, 'security', cfg, mycloud) ] mocksdns.assert_has_calls(calls) # first return is for the non-dns call before with mock.patch.object(cc_apt_configure, 'search_for_mirror', side_effect=[None, pmir, None, smir]) as mockse: mirrors = cc_apt_configure.find_apt_mirror_info(cfg, mycloud, arch) calls = [ call(None), call([ 'http://ubuntu-mirror.localdomain/ubuntu', 'http://ubuntu-mirror/ubuntu' ]), call(None), call([ 'http://ubuntu-security-mirror.localdomain/ubuntu', 'http://ubuntu-security-mirror/ubuntu' ]) ] mockse.assert_has_calls(calls) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror_search(self): """test_apt_v3_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(cc_apt_configure, 'search_for_mirror', side_effect=[pmir, smir]) as mocksearch: mirrors = cc_apt_configure.find_apt_mirror_info(cfg, None, '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_apt_v3_mirror_arches_sysdefault(self): """test_apt_v3_mirror_arches - Test arches fallback to sys default""" arch = 'amd64' default_mirrors = cc_apt_configure.get_default_mirrors(arch) pmir = default_mirrors["PRIMARY"] smir = default_mirrors["SECURITY"] mycloud = self._get_cloud('ubuntu') cfg = { "primary": [{ 'arches': ["thisarchdoesntexist_64"], "uri": "notthis" }, { 'arches': ["thisarchdoesntexist"], "uri": "notthiseither" }], "security": [{ 'arches': ["thisarchdoesntexist"], "uri": "nothat" }, { 'arches': ["thisarchdoesntexist_64"], "uri": "nothateither" }] } mirrors = cc_apt_configure.find_apt_mirror_info(cfg, mycloud, arch) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror_arches(self): """test_apt_v3_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 = cc_apt_configure.find_apt_mirror_info(cfg, None, arch) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror_arches_default(self): """test_apt_v3_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 = cc_apt_configure.find_apt_mirror_info(cfg, None, 'amd64') self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror_search_dns(self): """test_apt_v3_mirror_search_dns - Test searching dns patterns""" pmir = "phit" smir = "shit" arch = 'amd64' mycloud = self._get_cloud('ubuntu') cfg = {"primary": [{'arches': ["default"], "search_dns": True}], "security": [{'arches': ["default"], "search_dns": True}]} with mock.patch.object(cc_apt_configure, 'get_mirror', return_value="http://mocked/foo") as mockgm: mirrors = cc_apt_configure.find_apt_mirror_info(cfg, mycloud, arch) calls = [call(cfg, 'primary', arch, mycloud), call(cfg, 'security', arch, mycloud)] mockgm.assert_has_calls(calls) with mock.patch.object(cc_apt_configure, 'search_for_mirror_dns', return_value="http://mocked/foo") as mocksdns: mirrors = cc_apt_configure.find_apt_mirror_info(cfg, mycloud, arch) calls = [call(True, 'primary', cfg, mycloud), call(True, 'security', cfg, mycloud)] mocksdns.assert_has_calls(calls) # first return is for the non-dns call before with mock.patch.object(cc_apt_configure, 'search_for_mirror', side_effect=[None, pmir, None, smir]) as mockse: mirrors = cc_apt_configure.find_apt_mirror_info(cfg, mycloud, arch) calls = [call(None), call(['http://ubuntu-mirror.localdomain/ubuntu', 'http://ubuntu-mirror/ubuntu']), call(None), call(['http://ubuntu-security-mirror.localdomain/ubuntu', 'http://ubuntu-security-mirror/ubuntu'])] mockse.assert_has_calls(calls) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror_default(self): """test_apt_v3_mirror_default - Test without defining a mirror""" arch = 'amd64' default_mirrors = cc_apt_configure.get_default_mirrors(arch) pmir = default_mirrors["PRIMARY"] smir = default_mirrors["SECURITY"] mycloud = self._get_cloud('ubuntu') mirrors = cc_apt_configure.find_apt_mirror_info({}, mycloud, arch) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror_default(self): """test_apt_v3_mirror_default - Test without defining a mirror""" arch = 'amd64' default_mirrors = cc_apt_configure.get_default_mirrors(arch) pmir = default_mirrors["PRIMARY"] smir = default_mirrors["SECURITY"] mycloud = self._get_cloud('ubuntu') mirrors = cc_apt_configure.find_apt_mirror_info({}, mycloud, arch) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror_arches(self): """test_apt_v3_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 = cc_apt_configure.find_apt_mirror_info(cfg, None, arch) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror(self): """test_apt_v3_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 = cc_apt_configure.find_apt_mirror_info(cfg, None, 'amd64') self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror(self): """test_apt_v3_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 = cc_apt_configure.find_apt_mirror_info(cfg, None, 'amd64') self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror_arches_sysdefault(self): """test_apt_v3_mirror_arches - Test arches fallback to sys default""" arch = 'amd64' default_mirrors = cc_apt_configure.get_default_mirrors(arch) pmir = default_mirrors["PRIMARY"] smir = default_mirrors["SECURITY"] mycloud = self._get_cloud('ubuntu') cfg = {"primary": [{'arches': ["thisarchdoesntexist_64"], "uri": "notthis"}, {'arches': ["thisarchdoesntexist"], "uri": "notthiseither"}], "security": [{'arches': ["thisarchdoesntexist"], "uri": "nothat"}, {'arches': ["thisarchdoesntexist_64"], "uri": "nothateither"}]} mirrors = cc_apt_configure.find_apt_mirror_info(cfg, mycloud, arch) self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_mirror_arches_default(self): """test_apt_v3_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 = cc_apt_configure.find_apt_mirror_info(cfg, None, 'amd64') self.assertEqual(mirrors['MIRROR'], pmir) self.assertEqual(mirrors['PRIMARY'], pmir) self.assertEqual(mirrors['SECURITY'], smir)
def test_apt_v3_list_rename(self, m_get_architecture): """test_apt_v3_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, MOCK_LSB_RELEASE_DATA['codename'])) fromfn = ("%s/%s_%s" % (pre, archive, post)) tofn = ("%s/test.ubuntu.com_%s" % (pre, post)) mirrors = cc_apt_configure.find_apt_mirror_info(cfg, None, 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]): cc_apt_configure.rename_apt_lists(mirrors, TARGET) mockren.assert_any_call(fromfn, tofn)
def test_apt_v3_list_rename(self, m_get_architecture): """test_apt_v3_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, util.lsb_release()['codename'])) fromfn = ("%s/%s_%s" % (pre, archive, post)) tofn = ("%s/test.ubuntu.com_%s" % (pre, post)) mirrors = cc_apt_configure.find_apt_mirror_info(cfg, None, 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]): cc_apt_configure.rename_apt_lists(mirrors, TARGET) mockren.assert_any_call(fromfn, tofn)