~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Matt Nordhoff
  • Date: 2009-04-04 02:50:01 UTC
  • mfrom: (4253 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4256.
  • Revision ID: mnordhoff@mattnordhoff.com-20090404025001-z1403k0tatmc8l91
Merge bzr.dev, fixing conflicts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
"""Tests of status command.
18
18
 
19
19
Most of these depend on the particular formatting used.
20
 
As such they really are blackbox tests even though some of the 
 
20
As such they really are blackbox tests even though some of the
21
21
tests are not using self.capture. If we add tests for the programmatic
22
22
interface later, they will be non blackbox tests.
23
23
"""
43
43
 
44
44
 
45
45
class BranchStatus(TestCaseWithTransport):
46
 
    
 
46
 
47
47
    def assertStatus(self, expected_lines, working_tree,
48
48
        revision=None, short=False, pending=True, verbose=False):
49
49
        """Run status in working_tree and look for output.
50
 
        
 
50
 
51
51
        :param expected_lines: The lines to look for.
52
52
        :param working_tree: The tree to run status in.
53
53
        """
54
54
        output_string = self.status_string(working_tree, revision, short,
55
55
                pending, verbose)
56
56
        self.assertEqual(expected_lines, output_string.splitlines(True))
57
 
    
 
57
 
58
58
    def status_string(self, wt, revision=None, short=False, pending=True,
59
59
        verbose=False):
60
60
        # use a real file rather than StringIO because it doesn't handle
147
147
        self.build_tree(['more.c'])
148
148
        wt.add('more.c')
149
149
        wt.commit('Another test message')
150
 
        
 
150
 
151
151
        revs.append(RevisionSpec.from_string('1'))
152
152
        self.assertStatus([
153
153
                'added:\n',
206
206
        wt.add('directory')
207
207
        wt.add('test.c')
208
208
        wt.commit('testing')
209
 
        
 
209
 
210
210
        self.assertStatus([
211
211
                'unknown:\n',
212
212
                '  bye.c\n',
225
225
        tof = StringIO()
226
226
        self.assertRaises(errors.PathsDoNotExist,
227
227
                          show_tree_status,
228
 
                          wt, specific_files=['bye.c','test.c','absent.c'], 
 
228
                          wt, specific_files=['bye.c','test.c','absent.c'],
229
229
                          to_file=tof)
230
 
        
 
230
 
231
231
        tof = StringIO()
232
232
        show_tree_status(wt, specific_files=['directory'], to_file=tof)
233
233
        tof.seek(0)
296
296
        wt.commit('Create five empty files.')
297
297
        open('FILE_B', 'w').write('Modification to file FILE_B.')
298
298
        open('FILE_C', 'w').write('Modification to file FILE_C.')
299
 
        unlink('FILE_E')  # FILE_E will be versioned but missing 
 
299
        unlink('FILE_E')  # FILE_E will be versioned but missing
300
300
        open('FILE_Q', 'w').write('FILE_Q is added but not committed.')
301
301
        wt.add('FILE_Q')  # FILE_Q will be added but not committed
302
302
        open('UNVERSIONED_BUT_EXISTING', 'w')
347
347
        self.assertContainsRe(err,
348
348
                              r'.*ERROR: Path\(s\) do not exist: '
349
349
                              'NONEXISTENT.*')
350
 
        
 
350
 
351
351
    def test_status_nonexistent_file_with_others(self):
352
352
        # bzr st [--short] NONEXISTENT ...others..
353
353
        wt = self._prepare_nonexistent()
380
380
        self.assertContainsRe(err,
381
381
                              r'.*ERROR: Path\(s\) do not exist: '
382
382
                              'NONEXISTENT.*')
383
 
        
 
383
 
384
384
    def test_status_multiple_nonexistent_files(self):
385
385
        # bzr st [--short] NONEXISTENT ... ANOTHER_NONEXISTENT ...
386
386
        wt = self._prepare_nonexistent()
415
415
        self.assertContainsRe(err,
416
416
                              r'.*ERROR: Path\(s\) do not exist: '
417
417
                              'ANOTHER_NONEXISTENT NONEXISTENT.*')
418
 
        
 
418
 
419
419
    def test_status_nonexistent_file_with_unversioned(self):
420
420
        # bzr st [--short] NONEXISTENT A B UNVERSIONED_BUT_EXISTING C D E Q
421
421
        wt = self._prepare_nonexistent()
494
494
        super(CheckoutStatus, self).setUp()
495
495
        mkdir('codir')
496
496
        chdir('codir')
497
 
        
 
497
 
498
498
    def make_branch_and_tree(self, relpath):
499
499
        source = self.make_branch(pathjoin('..', relpath))
500
500
        checkout = bzrdir.BzrDirMetaFormat1().initialize(relpath)
649
649
 
650
650
 
651
651
class TestStatusEncodings(TestCaseWithTransport):
652
 
    
 
652
 
653
653
    def setUp(self):
654
654
        TestCaseWithTransport.setUp(self)
655
655
        self.user_encoding = osutils._cached_user_encoding