Skip to content

Commit

Permalink
Add a method to build checkout repos dictionary (kubeflow#511)
Browse files Browse the repository at this point in the history
* Add a method to build checkout repos dictionary

* Fix error

* Simplify method

* caller pass in defaults
  • Loading branch information
richardsliu authored and k8s-ci-robot committed Nov 4, 2019
1 parent 71a3dcd commit 3c672e1
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
19 changes: 19 additions & 0 deletions py/kubeflow/testing/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,25 @@ def run(command,
def run_and_output(*args, **argv):
return run(*args, **argv)

def combine_repos(list_of_repos):
"""Builds a dictionary of repo owner/names to commit hashes.
Args:
list_of_repos: A list of repos to checkout, each one in the format of
"owner/name@commit". Later values override earlier ones.
Returns:
repos: A dictionary of repository names to commit hashes.
"""

# Convert list_of_repos to a dictionary where key is "repo_owner/repo_name"
# and value is the commit hash. By convention, values that appear later in
# the list would override earlier ones.
repos = {}
for r in list_of_repos:
parts = r.split('@')
repos[parts[0]] = parts[1]

return repos

def clone_repo(dest,
repo_owner=MASTER_REPO_OWNER,
Expand Down
30 changes: 30 additions & 0 deletions py/kubeflow/tests/util_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,35 @@ def testSplitGcsUri(self):
self.assertEqual("some-bucket", bucket)
self.assertEqual("", path)

def testCombineReposDefault(self):
repos = util.combine_repos([])
expected_repos = {}
self.assertDictEqual(repos, expected_repos)

def testCombineReposOverrides(self):
repos = util.combine_repos(["kubeflow/kubeflow@HEAD",
"kubeflow/tf-operator@HEAD",
"kubeflow/kubeflow@12345",
"kubeflow/tf-operator@23456"])
expected_repos = {
"kubeflow/kubeflow": "12345",
"kubeflow/tf-operator": "23456"
}
self.assertDictEqual(repos, expected_repos)

def testCombineReposExtras(self):
repos = util.combine_repos(["kubeflow/kubeflow@HEAD",
"kubeflow/tf-operator@HEAD",
"kubeflow/kfctl@12345",
"kubeflow/katib@23456"])
expected_repos = {
"kubeflow/kubeflow": "HEAD",
"kubeflow/tf-operator": "HEAD",
"kubeflow/kfctl": "12345",
"kubeflow/katib": "23456"
}
self.assertDictEqual(repos, expected_repos)


if __name__ == "__main__":
unittest.main()

0 comments on commit 3c672e1

Please sign in to comment.