summaryrefslogtreecommitdiff
path: root/test/git/test_git.py
diff options
context:
space:
mode:
authorMichael Trier <mtrier@gmail.com>2008-05-07 16:49:48 -0400
committerMichael Trier <mtrier@gmail.com>2008-05-07 16:49:48 -0400
commit33ebe7acec14b25c5f84f35a664803fcab2f7781 (patch)
tree960b40fe368a9882221bcdd8635b9080dec01ec6 /test/git/test_git.py
downloadgitpython-33ebe7acec14b25c5f84f35a664803fcab2f7781.tar.gz
initial project
Diffstat (limited to 'test/git/test_git.py')
-rw-r--r--test/git/test_git.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/test/git/test_git.py b/test/git/test_git.py
new file mode 100644
index 00000000..dc6f067e
--- /dev/null
+++ b/test/git/test_git.py
@@ -0,0 +1,49 @@
+import os
+from mock import *
+from gitalicious.test.asserts import *
+from gitalicious.lib import *
+from gitalicious.test.helper import *
+
+class TestGit(object):
+ def setup(self):
+ base = os.path.join(os.path.dirname(__file__), "../.."),
+ self.git = Git(base)
+ self.git_bin_base = "%s --git-dir=%s" % (Git.git_binary, base)
+
+ @patch(Git, 'execute')
+ def test_method_missing_calls_execute(self, git):
+ git.return_value = ''
+ self.git.version()
+ assert_true(git.called)
+ # assert_equal(git.call_args, ((("%s version " % self.git_bin_base),), {}))
+
+ def test_it_transforms_kwargs_into_git_command_arguments(self):
+ assert_equal(["-s"], self.git.transform_kwargs(**{'s': True}))
+ assert_equal(["-s 5"], self.git.transform_kwargs(**{'s': 5}))
+
+ assert_equal(["--max-count"], self.git.transform_kwargs(**{'max_count': True}))
+ assert_equal(["--max-count=5"], self.git.transform_kwargs(**{'max_count': 5}))
+
+ assert_equal(["-s", "-t"], self.git.transform_kwargs(**{'s': True, 't': True}))
+
+ def test_it_executes_git_to_shell_and_returns_result(self):
+ assert_match('^git version [\d\.]*$', self.git.execute("%s version" % Git.git_binary))
+
+ def test_it_transforms_kwargs_shell_escapes_arguments(self):
+ assert_equal(["--foo=\"bazz'er\""], self.git.transform_kwargs(**{'foo': "bazz'er"}))
+ assert_equal(["-x \"bazz'er\""], self.git.transform_kwargs(**{'x': "bazz'er"}))
+
+ @patch(Git, 'execute')
+ def test_it_really_shell_escapes_arguments_to_the_git_shell_1(self, git):
+ self.git.foo(**{'bar': "bazz'er"})
+ assert_true(git.called)
+ assert_equal(git.call_args, ((("%s foo --bar=\"bazz'er\"" % self.git_bin_base),), {}))
+
+ @patch(Git, 'execute')
+ def test_it_really_shell_escapes_arguments_to_the_git_shell_2(self, git):
+ self.git.bar(**{'x': "quu'x"})
+ assert_true(git.called)
+ assert_equal(git.call_args, ((("%s bar -x \"quu'x\"" % self.git_bin_base),), {}))
+
+ def test_it_shell_escapes_the_standalone_argument(self):
+ self.git.foo("bar's", {})