# HG changeset patch # User Lincoln Stoll <lstoll@lstoll.net> # Date 1256059986 -7200 # Tue Oct 20 19:33:06 2009 +0200 # Node ID fdb8065e2eacce89bebb45b366acd492eb3a59dc # Parent 29e5072ddaab1ca1b55598d2f7d6721811e30caf Adding a unit test for the url format parser. diff --git a/unit-tests/url-test.py b/unit-tests/url-test.py new file mode 100644 --- /dev/null +++ b/unit-tests/url-test.py @@ -0,0 +1,48 @@ +import sys, tempfile, unittest, shutil +from mercurial import ui, hg, commands + +sys.path.append('../hggit') + +from git_handler import GitHandler + + +class TestUrlParsing(unittest.TestCase): + + def setUp(self): + # create a test repo location. + self.tmpdir = tempfile.mkdtemp('hg-git_url-test') + commands.init(ui.ui(), self.tmpdir) + repo = hg.repository(ui.ui(), self.tmpdir) + self.handler = GitHandler(repo, ui.ui()) + + def tearDown(self): + # remove the temp repo + shutil.rmtree(self.tmpdir) + + def test_ssh_github_style_slash(self): + url = "git+ssh://git@github.com/webjam/webjam.git" + client, path = self.handler.get_transport_and_path(url) + self.assertEquals(path, '/webjam/webjam.git') + self.assertEquals(client.host, 'git@github.com') + + def test_ssh_github_style_colon(self): + url = "git+ssh://git@github.com:webjam/webjam.git" + client, path = self.handler.get_transport_and_path(url) + self.assertEquals(path, 'webjam/webjam.git') + self.assertEquals(client.host, 'git@github.com') + + def test_ssh_heroku_style(self): + url = "git+ssh://git@heroku.com:webjam.git" + client, path = self.handler.get_transport_and_path(url) + self.assertEquals(path, 'webjam.git') + self.assertEquals(client.host, 'git@heroku.com') + + def test_gitdaemon_style(self): + url = "git://github.com/webjam/webjam.git" + client, path = self.handler.get_transport_and_path(url) + self.assertEquals(path, '/webjam/webjam.git') + self.assertEquals(client.host, 'github.com') + + +if __name__ == '__main__': + unittest.main()