36
36
from bzrlib.tests.test_sftp_transport import TestCaseWithSFTPServer
37
from bzrlib.tests.blackbox import ExternalBase
37
from bzrlib.tests import TestCaseWithTransport
38
38
from bzrlib.workingtree import WorkingTree
41
class TestCommands(ExternalBase):
41
class TestCommands(TestCaseWithTransport):
43
43
def test_ignore_absolutes(self):
44
44
"""'ignore' with an absolute path returns an error"""
106
106
"""'ignore' with no arguments returns an error"""
107
107
self.make_branch_and_tree('.')
108
108
self.run_bzr_error(('bzr: ERROR: ignore requires at least one '
109
'NAME_PATTERN or --old-default-rules\n',),
109
'NAME_PATTERN or --default-rules.\n',),
112
def test_ignore_old_defaults(self):
113
out, err = self.run_bzr('ignore --old-default-rules')
114
self.assertContainsRe(out, 'CVS')
112
def test_ignore_default_rules(self):
113
out, err = self.run_bzr(['ignore', '--default-rules'])
114
reference_set = set(ignores.USER_DEFAULTS)
115
output_set = set(out.rstrip().split('\n'))
116
self.assertEqual(reference_set, output_set)
115
117
self.assertEqual('', err)
117
119
def test_ignore_versioned_file(self):
154
156
" and match your ignore pattern:\nb\n"\
155
157
"These files will continue to be version controlled"\
156
158
" unless you 'bzr remove' them.\n")
160
def test_ignore_directory(self):
161
"""Test --directory option"""
162
tree = self.make_branch_and_tree('a')
163
self.run_bzr(['ignore', '--directory=a', 'README'])
164
self.check_file_contents('a/.bzrignore', 'README\n')
166
def test_ignored_invalid_pattern(self):
167
"""Ensure graceful handling for invalid ignore pattern.
169
Test case for #300062.
170
Invalid pattern should show clear error message.
171
Invalid pattern should not be added to .bzrignore file.
173
tree = self.make_branch_and_tree('.')
174
out, err = self.run_bzr(['ignore', 'RE:*.cpp', 'foo', 'RE:['], 3)
175
self.assertEqual(out, '')
176
self.assertContainsRe(err,
177
'Invalid ignore pattern.*RE:\*\.cpp.*RE:\[', re.DOTALL)
178
self.assertNotContainsRe(err, 'foo', re.DOTALL)
179
self.assertFalse(os.path.isfile('.bzrignore'))