~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_cmdline.py

  • Committer: Robert Collins
  • Date: 2010-05-20 02:57:52 UTC
  • mfrom: (4797.43.11 2.1)
  • mto: This revision was merged to the branch mainline in revision 5243.
  • Revision ID: robertc@robertcollins.net-20100520025752-dbfi4kx7y4ivtiff
Merge up from 2.0/2.1:

* Support Pyrex 0.9.9, required changing how we handle exceptions in Pyrex.
  (John Arbash Meinel, #582656)

* ``bzr clean-tree`` should not delete nested bzrdirs. Required for proper
  support of bzr-externals and scmproj plugins.
  (Alexander Belchenko, bug #572098)

* Reduce peak memory by one copy of compressed text.
  (John Arbash Meinel, #566940)

* Support Pyrex 0.9.9, required changing how we handle exceptions in Pyrex.
  (John Arbash Meinel, #582656)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
from bzrlib import (
19
19
    cmdline,
20
 
    tests)
 
20
    tests,
 
21
    )
 
22
from bzrlib.tests.features import backslashdir_feature
21
23
 
22
24
class TestSplitter(tests.TestCase):
23
25
 
91
93
            u'"x x" "y y"')
92
94
        self.assertAsTokens([(True, u'x x'), (True, u'y y')],
93
95
            u'"x x" \'y y\'', single_quotes_allowed=True)
 
96
 
 
97
    def test_n_backslashes_handling(self):
 
98
        # https://bugs.launchpad.net/bzr/+bug/528944
 
99
        # actually we care about the doubled backslashes when they're
 
100
        # represents UNC paths.
 
101
        # But in fact there is too much weird corner cases
 
102
        # (see https://bugs.launchpad.net/tortoisebzr/+bug/569050)
 
103
        # so to reproduce every bit of windows command-line handling
 
104
        # could be not worth of efforts?
 
105
        self.requireFeature(backslashdir_feature)
 
106
        self.assertAsTokens([(True, r'\\host\path')], r'"\\host\path"')
 
107
        self.assertAsTokens([(False, r'\\host\path')], r'\\host\path')
 
108
        # handling of " after the 2n and 2n+1 backslashes
 
109
        # inside and outside the quoted string
 
110
        self.assertAsTokens([(True, r'\\'), (False, r'*.py')], r'"\\\\" *.py')
 
111
        self.assertAsTokens([(True, r'\\" *.py')], r'"\\\\\" *.py"')
 
112
        self.assertAsTokens([(True, r'\\ *.py')], r'\\\\" *.py"')
 
113
        self.assertAsTokens([(False, r'\\"'), (False, r'*.py')],
 
114
                            r'\\\\\" *.py')
 
115
        self.assertAsTokens([(True, u'\\\\')], u'"\\\\')
 
116