19
from bzrlib.tests import TestCaseInTempDir
20
20
from bzrlib.branch import Branch
22
from bzrlib.osutils import abspath, realpath, getcwd
23
from bzrlib.urlutils import local_path_from_url, local_path_to_url, escape
24
from bzrlib.tests import TestCaseWithTransport
21
from bzrlib.clone import copy_branch
27
24
"""Tests for Branch parent URL"""
30
class TestParent(TestCaseWithTransport):
27
class TestParent(TestCaseInTempDir):
32
28
def test_no_default_parent(self):
33
29
"""Branches should have no parent by default"""
34
b = self.make_branch('.')
30
b = Branch.initialize(u'.')
35
31
self.assertEquals(b.get_parent(), None)
37
34
def test_set_get_parent(self):
38
"""Set, re-get and reset the parent"""
39
b = self.make_branch('.')
40
url = 'http://bazaar-vcs.org/bzr/bzr.dev'
35
"""Set and then re-get the parent"""
36
b = Branch.initialize(u'.')
37
url = 'http://bazaar-ng.org/bzr/bzr.dev'
42
39
self.assertEquals(b.get_parent(), url)
43
self.assertEqual(b.control_files.get('parent').read().strip('\n'), url)
46
self.assertEquals(b.get_parent(), None)
48
b.set_parent('../other_branch')
51
self.assertEquals(b.get_parent(), local_path_to_url('../other_branch'))
52
path = local_path_to_url('../yanb')
54
self.assertEqual(b.control_files.get('parent').read().strip('\n'),
56
self.assertEqual(b.get_parent(), path)
59
self.assertRaises(bzrlib.errors.InvalidURL, b.set_parent, u'\xb5')
60
b.set_parent(escape(u'\xb5'))
61
self.assertEqual(b.control_files.get('parent').read().strip('\n'),
64
self.assertEqual(b.get_parent(), b.base + '%C2%B5')
41
def test_branch_sets_parent(self):
42
"""The branch command should set the new branch's parent"""
43
from bzrlib.commands import run_bzr
46
branch_from = Branch.initialize('from')
47
file('from/foo', 'wt').write('contents of foo')
48
branch_from.working_tree().add('foo')
49
branch_from.working_tree().commit('initial commit')
52
copy_branch(branch_from, 'to', None)
54
branch_to = Branch.open('to')
55
abspath = os.path.abspath('from')
56
self.assertEquals(branch_to.get_parent(), abspath)