Fixed building destination path on forking repository
Also fixed handling 'path' argument for centos repositories Change-Id: I3292e64d47e0ea58a44d3ce625649d4bb934f3c6 Closes-Bug: 1547820
This commit is contained in:
parent
e0059a7af3
commit
c0f04443b5
|
@ -95,7 +95,9 @@ class RepositoryController(object):
|
||||||
"""
|
"""
|
||||||
new_path = os.path.join(
|
new_path = os.path.join(
|
||||||
destination,
|
destination,
|
||||||
repository.path or utils.get_path_from_url(repository.url, False)
|
repository.path or
|
||||||
|
# the cut first '/', because otherwise path.join uses it as is
|
||||||
|
utils.get_path_from_url(repository.url, False)[1:]
|
||||||
)
|
)
|
||||||
logger.info("cloning repository '%s' to '%s'", repository, new_path)
|
logger.info("cloning repository '%s' to '%s'", repository, new_path)
|
||||||
return self.driver.fork_repository(
|
return self.driver.fork_repository(
|
||||||
|
|
|
@ -105,6 +105,7 @@ class RpmRepositoryDriver(RepositoryDriverBase):
|
||||||
name=repository_data['name'],
|
name=repository_data['name'],
|
||||||
url=utils.normalize_repository_url(repository_data["uri"]),
|
url=utils.normalize_repository_url(repository_data["uri"]),
|
||||||
architecture=arch,
|
architecture=arch,
|
||||||
|
path=repository_data.get('path'),
|
||||||
origin=""
|
origin=""
|
||||||
))
|
))
|
||||||
|
|
||||||
|
@ -201,6 +202,7 @@ class RpmRepositoryDriver(RepositoryDriverBase):
|
||||||
name=repository_data['name'],
|
name=repository_data['name'],
|
||||||
url=utils.normalize_repository_url(repository_data["uri"]),
|
url=utils.normalize_repository_url(repository_data["uri"]),
|
||||||
architecture=arch,
|
architecture=arch,
|
||||||
|
path=repository_data.get('path'),
|
||||||
origin=repository_data.get('origin')
|
origin=repository_data.get('origin')
|
||||||
)
|
)
|
||||||
utils.ensure_dir_exist(utils.get_path_from_url(repository.url))
|
utils.ensure_dir_exist(utils.get_path_from_url(repository.url))
|
||||||
|
|
|
@ -87,7 +87,7 @@ class TestRepositoryController(base.TestCase):
|
||||||
|
|
||||||
@mock.patch("packetary.controllers.repository.os")
|
@mock.patch("packetary.controllers.repository.os")
|
||||||
def test_fork_repository(self, os):
|
def test_fork_repository(self, os):
|
||||||
os.path.join.side_effect = lambda *args: "".join(args)
|
os.path.join.side_effect = lambda *args: "/".join(args)
|
||||||
repo = gen_repository(name="test1", url="file:///test")
|
repo = gen_repository(name="test1", url="file:///test")
|
||||||
clone = copy.copy(repo)
|
clone = copy.copy(repo)
|
||||||
clone.url = "/root/repo"
|
clone.url = "/root/repo"
|
||||||
|
@ -98,7 +98,7 @@ class TestRepositoryController(base.TestCase):
|
||||||
self.context.connection, repo, "./repo/test", False, False
|
self.context.connection, repo, "./repo/test", False, False
|
||||||
)
|
)
|
||||||
repo.path = "os"
|
repo.path = "os"
|
||||||
self.ctrl.fork_repository(repo, "./repo/", False, False)
|
self.ctrl.fork_repository(repo, "./repo", False, False)
|
||||||
self.driver.fork_repository.assert_called_with(
|
self.driver.fork_repository.assert_called_with(
|
||||||
self.context.connection, repo, "./repo/os", False, False
|
self.context.connection, repo, "./repo/os", False, False
|
||||||
)
|
)
|
||||||
|
|
|
@ -69,7 +69,10 @@ class TestRpmDriver(base.TestCase):
|
||||||
|
|
||||||
def test_get_repository(self):
|
def test_get_repository(self):
|
||||||
repos = []
|
repos = []
|
||||||
repo_data = {"name": "os", "uri": "http://host/centos/os/x86_64/"}
|
repo_data = {
|
||||||
|
"name": "os", "uri": "http://host/centos/os/x86_64/",
|
||||||
|
"path": "centos"
|
||||||
|
}
|
||||||
self.driver.get_repository(
|
self.driver.get_repository(
|
||||||
self.connection,
|
self.connection,
|
||||||
repo_data,
|
repo_data,
|
||||||
|
@ -83,6 +86,7 @@ class TestRpmDriver(base.TestCase):
|
||||||
self.assertEqual("", repo.origin)
|
self.assertEqual("", repo.origin)
|
||||||
self.assertEqual("x86_64", repo.architecture)
|
self.assertEqual("x86_64", repo.architecture)
|
||||||
self.assertEqual("http://host/centos/os/x86_64/", repo.url)
|
self.assertEqual("http://host/centos/os/x86_64/", repo.url)
|
||||||
|
self.assertEqual("centos", repo.path)
|
||||||
|
|
||||||
def test_get_packages(self):
|
def test_get_packages(self):
|
||||||
streams = []
|
streams = []
|
||||||
|
@ -221,7 +225,8 @@ class TestRpmDriver(base.TestCase):
|
||||||
@mock.patch("packetary.drivers.rpm_driver.utils.ensure_dir_exist")
|
@mock.patch("packetary.drivers.rpm_driver.utils.ensure_dir_exist")
|
||||||
def test_create_repository(self, ensure_dir_exists_mock):
|
def test_create_repository(self, ensure_dir_exists_mock):
|
||||||
repository_data = {
|
repository_data = {
|
||||||
"name": "Test", "uri": "file:///repo/os/x86_64", "origin": "Test"
|
"name": "Test", "uri": "file:///repo/os/x86_64", "origin": "Test",
|
||||||
|
"path": "centos"
|
||||||
}
|
}
|
||||||
repo = self.driver.create_repository(repository_data, "x86_64")
|
repo = self.driver.create_repository(repository_data, "x86_64")
|
||||||
ensure_dir_exists_mock.assert_called_once_with("/repo/os/x86_64/")
|
ensure_dir_exists_mock.assert_called_once_with("/repo/os/x86_64/")
|
||||||
|
@ -229,6 +234,7 @@ class TestRpmDriver(base.TestCase):
|
||||||
self.assertEqual("x86_64", repo.architecture)
|
self.assertEqual("x86_64", repo.architecture)
|
||||||
self.assertEqual(repository_data["uri"] + "/", repo.url)
|
self.assertEqual(repository_data["uri"] + "/", repo.url)
|
||||||
self.assertEqual(repository_data["origin"], repo.origin)
|
self.assertEqual(repository_data["origin"], repo.origin)
|
||||||
|
self.assertEqual(repository_data["path"], repo.path)
|
||||||
|
|
||||||
@mock.patch("packetary.drivers.rpm_driver.utils")
|
@mock.patch("packetary.drivers.rpm_driver.utils")
|
||||||
def test_load_package_from_file(self, utils):
|
def test_load_package_from_file(self, utils):
|
||||||
|
|
Loading…
Reference in New Issue