]> git-server-git.apps.pok.os.sepia.ceph.com Git - teuthology.git/commitdiff
Add unit tests for repo_utils
authorZack Cerza <zack@cerza.org>
Thu, 26 Jun 2014 19:37:07 +0000 (13:37 -0600)
committerZack Cerza <zack@cerza.org>
Fri, 27 Jun 2014 16:14:07 +0000 (10:14 -0600)
Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
teuthology/test/test_repo_utils.py [new file with mode: 0644]

diff --git a/teuthology/test/test_repo_utils.py b/teuthology/test/test_repo_utils.py
new file mode 100644 (file)
index 0000000..fdb8227
--- /dev/null
@@ -0,0 +1,49 @@
+import logging
+import os.path
+from pytest import raises
+import shutil
+
+from .. import repo_utils
+repo_utils.log.setLevel(logging.WARNING)
+
+
+class TestRepoUtils(object):
+    empty_repo = 'https://github.com/ceph/empty'
+    local_dir = '/tmp/empty'
+
+    def setup(self):
+        assert not os.path.exists(self.local_dir)
+
+    def teardown(self):
+        shutil.rmtree(self.local_dir, ignore_errors=True)
+
+    def test_existing_branch(self):
+        repo_utils.checkout_repo(self.empty_repo, self.local_dir, 'master')
+        assert os.path.exists(self.local_dir)
+
+    def test_non_existing_branch(self):
+        with raises(repo_utils.BranchNotFoundError):
+            repo_utils.checkout_repo(self.empty_repo, self.local_dir, 'blah')
+        assert not os.path.exists(self.local_dir)
+
+    def test_multiple_calls_same_branch(self):
+        repo_utils.checkout_repo(self.empty_repo, self.local_dir, 'master')
+        assert os.path.exists(self.local_dir)
+        repo_utils.checkout_repo(self.empty_repo, self.local_dir, 'master')
+        assert os.path.exists(self.local_dir)
+        repo_utils.checkout_repo(self.empty_repo, self.local_dir, 'master')
+        assert os.path.exists(self.local_dir)
+
+    def test_multiple_calls_different_branches(self):
+        with raises(repo_utils.BranchNotFoundError):
+            repo_utils.checkout_repo(self.empty_repo, self.local_dir, 'blah')
+        assert not os.path.exists(self.local_dir)
+        repo_utils.checkout_repo(self.empty_repo, self.local_dir, 'master')
+        assert os.path.exists(self.local_dir)
+        repo_utils.checkout_repo(self.empty_repo, self.local_dir, 'master')
+        assert os.path.exists(self.local_dir)
+        with raises(repo_utils.BranchNotFoundError):
+            repo_utils.checkout_repo(self.empty_repo, self.local_dir, 'blah')
+        assert not os.path.exists(self.local_dir)
+        repo_utils.checkout_repo(self.empty_repo, self.local_dir, 'master')
+        assert os.path.exists(self.local_dir)