def test_ignore_patterns(self): tree = self.make_branch_and_tree('.') self.assertEquals(list(tree.unknowns()), []) # is_ignored() will now create the user global ignore file # if it doesn't exist, so make sure we ignore it in our tests ignores._set_user_ignores(['*.tmp']) self.build_tree_contents( [('foo.tmp', '.tmp files are ignored by default')]) self.assertEquals(list(tree.unknowns()), []) self.build_tree_contents([('foo.c', 'int main() {}')]) self.assertEquals(list(tree.unknowns()), ['foo.c']) tree.add('foo.c') self.assertEquals(list(tree.unknowns()), []) # 'ignore' works when creating the .bzrignore file self.build_tree_contents([('foo.blah', 'blah')]) self.assertEquals(list(tree.unknowns()), ['foo.blah']) self.run_bzr('ignore *.blah') self.assertEquals(list(tree.unknowns()), []) self.check_file_contents('.bzrignore', '*.blah\n') # 'ignore' works when then .bzrignore file already exists self.build_tree_contents([('garh', 'garh')]) self.assertEquals(list(tree.unknowns()), ['garh']) self.run_bzr('ignore garh') self.assertEquals(list(tree.unknowns()), []) self.check_file_contents('.bzrignore', '*.blah\ngarh\n')
def test_strict_commit(self): """Commit with --strict works if everything is known""" ignores._set_user_ignores([]) tree = self.make_branch_and_tree('tree') self.build_tree(['tree/a']) tree.add('a') # A simple change should just work self.run_bzr('commit --strict -m adding-a', working_dir='tree')
def test_add(self): """Test that adding will not duplicate ignores""" # Create an empty file ignores._set_user_ignores([]) patterns = ['foo', './bar', u'b\xe5z'] added = ignores.add_unique_user_ignores(patterns) self.assertEqual(patterns, added) self.assertEqual(set(patterns), ignores.get_user_ignores())
def test_set(self): patterns = ['*.py[co]', '*.py[oc]'] ignores._set_user_ignores(patterns) self.assertEqual(set(patterns), ignores.get_user_ignores()) patterns = ['vim', '*.swp'] ignores._set_user_ignores(patterns) self.assertEqual(set(patterns), ignores.get_user_ignores())
def test_add_directory(self): """Test that adding a directory will strip any trailing slash""" # Create an empty file ignores._set_user_ignores([]) in_patterns = ['foo/', 'bar/', 'baz\\'] added = ignores.add_unique_user_ignores(in_patterns) out_patterns = [ x.rstrip('/\\') for x in in_patterns ] self.assertEqual(out_patterns, added) self.assertEqual(set(out_patterns), ignores.get_user_ignores())
def test_add_directory(self): """Test that adding a directory will strip any trailing slash""" # Create an empty file ignores._set_user_ignores([]) in_patterns = ['foo/', 'bar/', 'baz\\'] added = ignores.add_unique_user_ignores(in_patterns) out_patterns = [x.rstrip('/\\') for x in in_patterns] self.assertEqual(out_patterns, added) self.assertEqual(set(out_patterns), ignores.get_user_ignores())
def test_mixed_is_ignored(self): tree = self.make_branch_and_tree('.') ignores._set_user_ignores(['*.py[co]', './.shelf']) self.build_tree_contents([('.bzrignore', './rootdir\n*.swp\n')]) self.assertEqual('*.py[co]', tree.is_ignored('foo.pyc')) self.assertEqual('./.shelf', tree.is_ignored('.shelf')) self.assertEqual('./rootdir', tree.is_ignored('rootdir')) self.assertEqual('*.swp', tree.is_ignored('foo.py.swp')) self.assertEqual('*.swp', tree.is_ignored('.foo.py.swp')) self.assertEqual(None, tree.is_ignored('.foo.py.swo'))
def setUp(self): super(TestLS, self).setUp() # Create a simple branch that can be used in testing ignores._set_user_ignores(['user-ignore']) self.wt = self.make_branch_and_tree('.') self.build_tree_contents([ ('.bzrignore', '*.pyo\n'), ('a', 'hello\n'), ])
def test_add_unique(self): """Test that adding will not duplicate ignores""" ignores._set_user_ignores( ['foo', './bar', u'b\xe5z', 'dir1/', 'dir3\\']) added = ignores.add_unique_user_ignores( ['xxx', './bar', 'xxx', 'dir1/', 'dir2/', 'dir3\\']) self.assertEqual(['xxx', 'dir2'], added) self.assertEqual(set(['foo', './bar', u'b\xe5z', 'xxx', 'dir1', 'dir2', 'dir3']), ignores.get_user_ignores())
def setUp(self): super(TestLSXML, self).setUp() # Create a simple branch that can be used in testing ignores._set_user_ignores(['user-ignore']) self.wt = self.make_branch_and_tree('.') self.build_tree_contents([ ('.bzrignore', '*.pyo\n'), ('a', 'hello\n'), ])
def test_add_unique(self): """Test that adding will not duplicate ignores""" ignores._set_user_ignores( ['foo', './bar', u'b\xe5z', 'dir1/', 'dir3\\']) added = ignores.add_unique_user_ignores( ['xxx', './bar', 'xxx', 'dir1/', 'dir2/', 'dir3\\']) self.assertEqual(['xxx', 'dir2'], added) self.assertEqual( set(['foo', './bar', u'b\xe5z', 'xxx', 'dir1', 'dir2', 'dir3']), ignores.get_user_ignores())
def test_returns_and_ignores(self): """Correctly returns added/ignored files""" wt = self.make_branch_and_tree('.') # The default ignore list includes '*.py[co]', but not CVS ignores._set_user_ignores(['*.py[co]']) self.build_tree(['inertiatic/', 'inertiatic/esp', 'inertiatic/CVS', 'inertiatic/foo.pyc']) added, ignored = wt.smart_add(u'.') self.assertSubset(('inertiatic', 'inertiatic/esp', 'inertiatic/CVS'), added) self.assertSubset(('*.py[co]',), ignored) self.assertSubset(('inertiatic/foo.pyc',), ignored['*.py[co]'])
def test_runtime_ignores(self): tree = self.make_branch_and_tree('.') self.build_tree_contents([('.bzrignore', '')]) ignores._set_user_ignores([]) orig_runtime = ignores._runtime_ignores try: ignores._runtime_ignores = set() self.assertEqual(None, tree.is_ignored('foobar.py')) tree._flush_ignore_list_cache() ignores.add_runtime_ignores(['./foobar.py']) self.assertEqual(set(['./foobar.py']), ignores.get_runtime_ignores()) self.assertEqual('./foobar.py', tree.is_ignored('foobar.py')) finally: ignores._runtime_ignores = orig_runtime
def test_use_empty(self): ignores._set_user_ignores([]) ignore_path = config.user_ignore_config_filename() self.check_file_contents(ignore_path, '') self.assertEqual(set([]), ignores.get_user_ignores())
def test_use_existing(self): patterns = ['*.o', '*.py[co]', u'\xe5*'] ignores._set_user_ignores(patterns) user_ignores = ignores.get_user_ignores() self.assertEqual(set(patterns), user_ignores)