~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/blackbox.py

[merge] fixes for ls

Show diffs side-by-side

added added

removed removed

Lines of Context:
460
460
        self.runbzr('pull ../b')
461
461
        self.runbzr('pull ../b')
462
462
 
 
463
    def test_ls(self):
 
464
        """Test the abilities of 'bzr ls'"""
 
465
        bzr = self.runbzr
 
466
        def bzrout(*args, **kwargs):
 
467
            kwargs['backtick'] = True
 
468
            return self.runbzr(*args, **kwargs)
 
469
 
 
470
        def ls_equals(value, *args):
 
471
            out = self.runbzr(['ls'] + list(args), backtick=True)
 
472
            self.assertEquals(out, value)
 
473
 
 
474
        bzr('init')
 
475
        open('a', 'wb').write('hello\n')
 
476
 
 
477
        # Can't supply both
 
478
        bzr('ls --verbose --null', retcode=1)
 
479
 
 
480
        ls_equals('a\n')
 
481
        ls_equals('?        a\n', '--verbose')
 
482
        ls_equals('a\n', '--unknown')
 
483
        ls_equals('', '--ignored')
 
484
        ls_equals('', '--versioned')
 
485
        ls_equals('a\n', '--unknown', '--ignored', '--versioned')
 
486
        ls_equals('', '--ignored', '--versioned')
 
487
        ls_equals('a\0', '--null')
 
488
 
 
489
        bzr('add a')
 
490
        ls_equals('V        a\n', '--verbose')
 
491
        bzr('commit -m add')
 
492
        
 
493
        os.mkdir('subdir')
 
494
        ls_equals('V        a\n'
 
495
                  '?        subdir/\n'
 
496
                  , '--verbose')
 
497
        open('subdir/b', 'wb').write('b\n')
 
498
        bzr('add')
 
499
        ls_equals('V        a\n'
 
500
                  'V        subdir/\n'
 
501
                  'V        subdir/b\n'
 
502
                  , '--verbose')
 
503
        bzr('commit -m subdir')
 
504
 
 
505
        ls_equals('a\n'
 
506
                  'subdir\n'
 
507
                  , '--non-recursive')
 
508
 
 
509
        ls_equals('V        a\n'
 
510
                  'V        subdir/\n'
 
511
                  , '--verbose', '--non-recursive')
 
512
 
 
513
        # Check what happens in a sub-directory
 
514
        os.chdir('subdir')
 
515
        ls_equals('b\n')
 
516
        ls_equals('b\0'
 
517
                  , '--null')
 
518
        ls_equals('a\n'
 
519
                  'subdir\n'
 
520
                  'subdir/b\n'
 
521
                  , '--from-root')
 
522
        ls_equals('a\0'
 
523
                  'subdir\0'
 
524
                  'subdir/b\0'
 
525
                  , '--from-root', '--null')
 
526
        ls_equals('a\n'
 
527
                  'subdir\n'
 
528
                  , '--from-root', '--non-recursive')
 
529
 
 
530
        os.chdir('..')
 
531
 
 
532
        # Check what happens when we supply a specific revision
 
533
        ls_equals('a\n', '--revision', '1')
 
534
        ls_equals('V        a\n'
 
535
                  , '--verbose', '--revision', '1')
 
536
 
 
537
        os.chdir('subdir')
 
538
        ls_equals('', '--revision', '1')
 
539
 
 
540
        # Now try to do ignored files.
 
541
        os.chdir('..')
 
542
        open('blah.py', 'wb').write('unknown\n')
 
543
        open('blah.pyo', 'wb').write('ignored\n')
 
544
        ls_equals('a\n'
 
545
                  'blah.py\n'
 
546
                  'blah.pyo\n'
 
547
                  'subdir\n'
 
548
                  'subdir/b\n')
 
549
        ls_equals('V        a\n'
 
550
                  '?        blah.py\n'
 
551
                  'I        blah.pyo\n'
 
552
                  'V        subdir/\n'
 
553
                  'V        subdir/b\n'
 
554
                  , '--verbose')
 
555
        ls_equals('blah.pyo\n'
 
556
                  , '--ignored')
 
557
        ls_equals('blah.py\n'
 
558
                  , '--unknown')
 
559
        ls_equals('a\n'
 
560
                  'subdir\n'
 
561
                  'subdir/b\n'
 
562
                  , '--versioned')
 
563
 
 
564
 
463
565
    def test_locations(self):
464
566
        """Using and remembering different locations"""
465
567
        os.mkdir('a')