Mercurial > hgsubversion
view tests/test_urls.py @ 680:703f33576ad8
svnwrap: add runtime override for choice of Subversion bindings
By setting the `HGSUBVERSION_BINDINGS environment variable to either
`SWIG' or `Subvertpy', the choice of bindings can be forced at
runtime. (For ease of use, the comparison is case-insensitive.)
Examples:
% HGSUBVERSION_BINDINGS=swig hg version --svn
Mercurial Distributed SCM (version 1.6+172-b25e1ced9861)
...
hgsubversion: 1.1.2+43-276742da2d85
Subversion: 1.6.12
bindings: SWIG
% HGSUBVERSION_BINDINGS=subvertpy hg version --svn
Mercurial Distributed SCM (version 1.6+172-b25e1ced9861)
...
hgsubversion: 1.1.2+43-276742da2d85
Subversion: 1.6.12
bindings: Subvertpy 0.7.4
% HGSUBVERSION_BINDINGS=none hg version --svn
Mercurial Distributed SCM (version 1.6+172-b25e1ced9861)
...
abort: cannot use hgsubversion; bindings disabled using HGSUBVERSION_BINDINGS!
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Wed, 11 Aug 2010 20:03:47 +0200 |
parents | 2cc1342d4476 |
children | 181ec1929b2a |
line wrap: on
line source
import test_util import unittest from hgsubversion.svnwrap import parse_url from hgsubversion import svnrepo class TestSubversionUrls(test_util.TestBase): def test_standard_url(self): self.assertEqual((None, None, 'file:///var/svn/repo'), parse_url('file:///var/svn/repo')) def test_user_url(self): self.assertEqual( ('joe', None, 'https://svn.testurl.com/repo'), parse_url('https://joe@svn.testurl.com/repo')) self.assertEqual( ('bob', None, 'https://svn.testurl.com/repo'), parse_url('https://joe@svn.testurl.com/repo', 'bob')) def test_password_url(self): self.assertEqual( (None, 't3stpw', 'svn+ssh://svn.testurl.com/repo'), parse_url('svn+ssh://:t3stpw@svn.testurl.com/repo')) self.assertEqual( (None, '123abc', 'svn+ssh://svn.testurl.com/repo'), parse_url('svn+ssh://:t3stpw@svn.testurl.com/repo', None, '123abc')) def test_svnssh_preserve_user(self): self.assertEqual( ('user', 't3stpw', 'svn+ssh://user@svn.testurl.com/repo', ), parse_url('svn+ssh://user:t3stpw@svn.testurl.com/repo')) self.assertEqual( ('bob', '123abc', 'svn+ssh://bob@svn.testurl.com/repo', ), parse_url('svn+ssh://user:t3stpw@svn.testurl.com/repo', 'bob', '123abc')) self.assertEqual( ('user2', None, 'svn+ssh://user2@svn.testurl.com/repo', ), parse_url('svn+ssh://user2@svn.testurl.com/repo')) self.assertEqual( ('bob', None, 'svn+ssh://bob@svn.testurl.com/repo', ), parse_url('svn+ssh://user2@svn.testurl.com/repo', 'bob')) def test_user_password_url(self): self.assertEqual( ('joe', 't3stpw', 'https://svn.testurl.com/repo'), parse_url('https://joe:t3stpw@svn.testurl.com/repo')) self.assertEqual( ('bob', '123abc', 'https://svn.testurl.com/repo'), parse_url('https://joe:t3stpw@svn.testurl.com/repo', 'bob', '123abc')) class TestSvnRepo(test_util.TestBase): def test_url_rewriting(self): ui = test_util.ui.ui() ui.setconfig('hgsubversion', 'username', 'bob') repo = svnrepo.svnremoterepo(ui, 'svn+ssh://joe@foo/bar') self.assertEqual('svn+ssh://bob@foo/bar', repo.svnurl) repo = svnrepo.svnremoterepo(ui, 'svn+http://joe@foo/bar') self.assertEqual(('http://foo/bar', 'bob', None), repo.svnauth) repo = svnrepo.svnremoterepo(ui, 'svn+https://joe@foo/bar') self.assertEqual(('https://foo/bar', 'bob', None), repo.svnauth) def suite(): all = [unittest.TestLoader().loadTestsFromTestCase(TestSubversionUrls)] return unittest.TestSuite(all)