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(
|
||||
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)
|
||||
return self.driver.fork_repository(
|
||||
|
|
|
@ -105,6 +105,7 @@ class RpmRepositoryDriver(RepositoryDriverBase):
|
|||
name=repository_data['name'],
|
||||
url=utils.normalize_repository_url(repository_data["uri"]),
|
||||
architecture=arch,
|
||||
path=repository_data.get('path'),
|
||||
origin=""
|
||||
))
|
||||
|
||||
|
@ -201,6 +202,7 @@ class RpmRepositoryDriver(RepositoryDriverBase):
|
|||
name=repository_data['name'],
|
||||
url=utils.normalize_repository_url(repository_data["uri"]),
|
||||
architecture=arch,
|
||||
path=repository_data.get('path'),
|
||||
origin=repository_data.get('origin')
|
||||
)
|
||||
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")
|
||||
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")
|
||||
clone = copy.copy(repo)
|
||||
clone.url = "/root/repo"
|
||||
|
@ -98,7 +98,7 @@ class TestRepositoryController(base.TestCase):
|
|||
self.context.connection, repo, "./repo/test", False, False
|
||||
)
|
||||
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.context.connection, repo, "./repo/os", False, False
|
||||
)
|
||||
|
|
|
@ -69,7 +69,10 @@ class TestRpmDriver(base.TestCase):
|
|||
|
||||
def test_get_repository(self):
|
||||
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.connection,
|
||||
repo_data,
|
||||
|
@ -83,6 +86,7 @@ class TestRpmDriver(base.TestCase):
|
|||
self.assertEqual("", repo.origin)
|
||||
self.assertEqual("x86_64", repo.architecture)
|
||||
self.assertEqual("http://host/centos/os/x86_64/", repo.url)
|
||||
self.assertEqual("centos", repo.path)
|
||||
|
||||
def test_get_packages(self):
|
||||
streams = []
|
||||
|
@ -221,7 +225,8 @@ class TestRpmDriver(base.TestCase):
|
|||
@mock.patch("packetary.drivers.rpm_driver.utils.ensure_dir_exist")
|
||||
def test_create_repository(self, ensure_dir_exists_mock):
|
||||
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")
|
||||
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(repository_data["uri"] + "/", repo.url)
|
||||
self.assertEqual(repository_data["origin"], repo.origin)
|
||||
self.assertEqual(repository_data["path"], repo.path)
|
||||
|
||||
@mock.patch("packetary.drivers.rpm_driver.utils")
|
||||
def test_load_package_from_file(self, utils):
|
||||
|
|
Loading…
Reference in New Issue