~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_init.py

Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006 Canonical Ltd
 
1
# Copyright (C) 2006, 2007 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
20
20
import os
21
21
import re
22
22
 
 
23
from bzrlib import (
 
24
    branch as _mod_branch,
 
25
    )
23
26
from bzrlib.bzrdir import BzrDirMetaFormat1
 
27
from bzrlib.tests import TestSkipped
24
28
from bzrlib.tests.blackbox import ExternalBase
25
29
from bzrlib.tests.test_sftp_transport import TestCaseWithSFTPServer
26
30
from bzrlib.workingtree import WorkingTree
72
76
        out, err = self.run_bzr('init', 'subdir2/nothere', retcode=3)
73
77
        self.assertEqual('', out)
74
78
        self.assertContainsRe(err,
75
 
            r'^bzr: ERROR: .*'
76
 
            '\[Errno 2\] No such file or directory')
 
79
            r'^bzr: ERROR: No such file: .*'
 
80
            '\[Err(no|or) 2\]')
77
81
        
78
82
        os.mkdir('subdir2')
79
83
        out, err = self.run_bzr('init', 'subdir2')
93
97
 
94
98
    def test_init_existing_without_workingtree(self):
95
99
        # make a repository
96
 
        self.run_bzr('init-repo', '.')
 
100
        repo = self.make_repository('.', shared=True)
 
101
        repo.set_make_working_trees(False)
97
102
        # make a branch; by default without a working tree
98
103
        self.run_bzr('init', 'subdir')
99
104
        # fail
106
111
        self.run_bzr('init')
107
112
        self.assertFalse(os.path.exists('.bzrignore'))
108
113
 
 
114
    def test_init_unicode(self):
 
115
        # Make sure getcwd can handle unicode filenames
 
116
        try:
 
117
            os.mkdir(u'mu-\xb5')
 
118
        except UnicodeError:
 
119
            raise TestSkipped("Unable to create Unicode filename")
 
120
        # try to init unicode dir
 
121
        self.run_bzr('init', u'mu-\xb5')
 
122
 
109
123
 
110
124
class TestSFTPInit(TestCaseWithSFTPServer):
111
125
 
124
138
 
125
139
        # make sure using 'bzr checkout' is not suggested
126
140
        # for remote locations missing a working tree
127
 
        self.assertFalse(re.search(r'checkout', err))
 
141
        self.assertFalse(re.search(r'use bzr checkout', err))
128
142
 
129
143
    def test_init_existing_branch_with_workingtree(self):
130
144
        # don't distinguish between the branch having a working tree or not
133
147
 
134
148
        # rely on SFTPServer get_url() pointing at '.'
135
149
        self.run_bzr_error(['Already a branch'], 'init', self.get_url())
 
150
 
 
151
    def test_init_append_revisions_only(self):
 
152
        self.run_bzr('init', '--dirstate-tags', 'normal_branch6')
 
153
        branch = _mod_branch.Branch.open('normal_branch6')
 
154
        self.assertEqual(False, branch._get_append_revisions_only())
 
155
        self.run_bzr('init', '--append-revisions-only',
 
156
                     '--dirstate-tags', 'branch6')
 
157
        branch = _mod_branch.Branch.open('branch6')
 
158
        self.assertEqual(True, branch._get_append_revisions_only())
 
159
        self.run_bzr_error(['cannot be set to append-revisions-only'], 'init',
 
160
            '--append-revisions-only', '--knit', 'knit')