~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: John Arbash Meinel
  • Date: 2009-03-27 22:29:55 UTC
  • mto: (3735.39.2 clean)
  • mto: This revision was merged to the branch mainline in revision 4280.
  • Revision ID: john@arbash-meinel.com-20090327222955-utifmfm888zerixt
Implement apply_delta_to_source which doesn't have to malloc another string.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2006 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
472
472
        self.assertEqual("working tree is out of date, run 'bzr update'\n",
473
473
                         err)
474
474
 
475
 
    def test_status_on_ignored(self):
476
 
        """Tests branch status on an unversioned file which is considered ignored.
477
 
 
478
 
        See https://bugs.launchpad.net/bzr/+bug/40103
479
 
        """
480
 
        tree = self.make_branch_and_tree('.')
481
 
 
482
 
        self.build_tree(['test1.c', 'test1.c~', 'test2.c~'])
483
 
        result = self.run_bzr('status')[0]
484
 
        self.assertContainsRe(result, "unknown:\n  test1.c\n")
485
 
        short_result = self.run_bzr('status --short')[0]
486
 
        self.assertContainsRe(short_result, "\?   test1.c\n")
487
 
 
488
 
        result = self.run_bzr('status test1.c')[0]
489
 
        self.assertContainsRe(result, "unknown:\n  test1.c\n")
490
 
        short_result = self.run_bzr('status --short test1.c')[0]
491
 
        self.assertContainsRe(short_result, "\?   test1.c\n")
492
 
 
493
 
        result = self.run_bzr('status test1.c~')[0]
494
 
        self.assertContainsRe(result, "ignored:\n  test1.c~\n")
495
 
        short_result = self.run_bzr('status --short test1.c~')[0]
496
 
        self.assertContainsRe(short_result, "I   test1.c~\n")
497
 
 
498
 
        result = self.run_bzr('status test1.c~ test2.c~')[0]
499
 
        self.assertContainsRe(result, "ignored:\n  test1.c~\n  test2.c~\n")
500
 
        short_result = self.run_bzr('status --short test1.c~ test2.c~')[0]
501
 
        self.assertContainsRe(short_result, "I   test1.c~\nI   test2.c~\n")
502
 
 
503
 
        result = self.run_bzr('status test1.c test1.c~ test2.c~')[0]
504
 
        self.assertContainsRe(result, "unknown:\n  test1.c\nignored:\n  test1.c~\n  test2.c~\n")
505
 
        short_result = self.run_bzr('status --short test1.c test1.c~ test2.c~')[0]
506
 
        self.assertContainsRe(short_result, "\?   test1.c\nI   test1.c~\nI   test2.c~\n")
507
 
 
508
475
    def test_status_write_lock(self):
509
476
        """Test that status works without fetching history and
510
477
        having a write lock.
531
498
    def make_branch_and_tree(self, relpath):
532
499
        source = self.make_branch(pathjoin('..', relpath))
533
500
        checkout = bzrdir.BzrDirMetaFormat1().initialize(relpath)
534
 
        bzrlib.branch.BranchReferenceFormat().initialize(checkout,
535
 
            target_branch=source)
 
501
        bzrlib.branch.BranchReferenceFormat().initialize(checkout, source)
536
502
        return checkout.create_workingtree()
537
503
 
538
504
 
629
595
        result2 = self.run_bzr("status -SV -r 0..")[0]
630
596
        self.assertEquals(result2, result)
631
597
 
632
 
    def assertStatusContains(self, pattern, short=False):
 
598
    def assertStatusContains(self, pattern):
633
599
        """Run status, and assert it contains the given pattern"""
634
 
        if short:
635
 
            result = self.run_bzr("status --short")[0]
636
 
        else:
637
 
            result = self.run_bzr("status")[0]
 
600
        result = self.run_bzr("status --short")[0]
638
601
        self.assertContainsRe(result, pattern)
639
602
 
640
 
    def test_kind_change_plain(self):
641
 
        tree = self.make_branch_and_tree('.')
642
 
        self.build_tree(['file'])
643
 
        tree.add('file')
644
 
        tree.commit('added file')
645
 
        unlink('file')
646
 
        self.build_tree(['file/'])
647
 
        self.assertStatusContains('kind changed:\n  file \(file => directory\)')
648
 
        tree.rename_one('file', 'directory')
649
 
        self.assertStatusContains('renamed:\n  file/ => directory/\n' \
650
 
                                  'modified:\n  directory/\n')
651
 
        rmdir('directory')
652
 
        self.assertStatusContains('removed:\n  file\n')
653
 
 
654
603
    def test_kind_change_short(self):
655
604
        tree = self.make_branch_and_tree('.')
656
605
        self.build_tree(['file'])
658
607
        tree.commit('added file')
659
608
        unlink('file')
660
609
        self.build_tree(['file/'])
661
 
        self.assertStatusContains('K  file => file/',
662
 
                                   short=True)
 
610
        self.assertStatusContains('K  file => file/')
663
611
        tree.rename_one('file', 'directory')
664
 
        self.assertStatusContains('RK  file => directory/',
665
 
                                   short=True)
 
612
        self.assertStatusContains('RK  file => directory/')
666
613
        rmdir('directory')
667
 
        self.assertStatusContains('RD  file => directory',
668
 
                                   short=True)
 
614
        self.assertStatusContains('RD  file => directory')
669
615
 
670
616
    def test_status_illegal_revision_specifiers(self):
671
617
        out, err = self.run_bzr('status -r 1..23..123', retcode=3)
704
650
 
705
651
class TestStatusEncodings(TestCaseWithTransport):
706
652
 
 
653
    def setUp(self):
 
654
        TestCaseWithTransport.setUp(self)
 
655
        self.user_encoding = osutils._cached_user_encoding
 
656
        self.stdout = sys.stdout
 
657
 
 
658
    def tearDown(self):
 
659
        bzrlib.user_encoding = self.user_encoding
 
660
        sys.stdout = self.stdout
 
661
        TestCaseWithTransport.tearDown(self)
 
662
 
707
663
    def make_uncommitted_tree(self):
708
664
        """Build a branch with uncommitted unicode named changes in the cwd."""
709
665
        working_tree = self.make_branch_and_tree(u'.')
717
673
        return working_tree
718
674
 
719
675
    def test_stdout_ascii(self):
720
 
        self.overrideAttr(osutils, '_cached_user_encoding', 'ascii')
 
676
        sys.stdout = StringIO()
 
677
        osutils._cached_user_encoding = 'ascii'
721
678
        working_tree = self.make_uncommitted_tree()
722
679
        stdout, stderr = self.run_bzr("status")
723
680
 
727
684
""")
728
685
 
729
686
    def test_stdout_latin1(self):
730
 
        self.overrideAttr(osutils, '_cached_user_encoding', 'latin-1')
 
687
        sys.stdout = StringIO()
 
688
        osutils._cached_user_encoding = 'latin-1'
731
689
        working_tree = self.make_uncommitted_tree()
732
690
        stdout, stderr = self.run_bzr('status')
733
691