Mercurial > hgsubversion
view tests/test_fetch_command_regexes.py @ 1347:759cafce6bec stable 1.8.3
editor: cope with slightly out-of-order editor drives
As of Subversion 1.8, ra_serf replaces ra_neon as the only http remote
access method. ra_serf does lots of clever network things, but as a
side effect violates some of the legacy editor API. It turns out we
were only barely using those guarantees, so it was straightforward to
relax our constraints and work with serf. Prior to this change,
attempting to use ra_serf would almost certainly result in an
exception due to an out-of-order editor drive.
See
https://svn.apache.org/repos/asf/subversion/trunk/notes/api-errata/1.7/ra001.txt
for more details of the Subversion change.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Sat, 26 Sep 2015 10:49:57 -0400 |
parents | d741f536f23a |
children |
line wrap: on
line source
import unittest import test_util from hgsubversion import stupid two_empties = """Index: __init__.py =================================================================== Index: bar/__init__.py =================================================================== Index: bar/test_muhaha.py =================================================================== --- bar/test_muhaha.py (revision 0) +++ bar/test_muhaha.py (revision 1) @@ -0,0 +1,2 @@ + +blah blah blah, I'm a fake patch \ No newline at end of file """ binary_delta = """Index: trunk/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures_fixtures.pyc =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: trunk/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures_fixtures.pyc ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: trunk/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures.rst =================================================================== """ special_delta = """Index: delta =================================================================== --- delta(revision 0) +++ delta(revision 9) @@ -0,0 +1 @@ +link alpha \ No newline at end of file Property changes on: delta ___________________________________________________________________ Name: svn:special + * """ class RegexTests(unittest.TestCase): def test_empty_file_re(self): changed = stupid.parsediff(two_empties) self.assertEqual(3, len(changed)) self.assertEqual('__init__.py', changed[0].name) self.assert_(changed[0].isempty()) self.assertEqual('bar/__init__.py', changed[1].name) self.assert_(changed[1].isempty()) self.assertEqual('bar/test_muhaha.py', changed[2].name) self.assert_(not changed[2].isempty()) def test_any_matches_just_one(self): pat = '''Index: trunk/django/contrib/admin/urls/__init__.py =================================================================== ''' changed = stupid.parsediff(pat) self.assertEqual(['trunk/django/contrib/admin/urls/__init__.py'], [f.name for f in changed]) def test_special_re(self): changed = stupid.parsediff(special_delta) self.assertEqual(1, len(changed)) self.assert_(changed[0].symlink) def test_any_file_re(self): changed = stupid.parsediff(two_empties) self.assertEqual(['__init__.py', 'bar/__init__.py', 'bar/test_muhaha.py'], [f.name for f in changed]) def test_binary_file_re(self): changed = stupid.parsediff(binary_delta) binaries = [f.name for f in changed if f.binary] self.assertEqual(['trunk/functional_tests/doc_tests/test_doctest_fixtures/doctest_fixtures_fixtures.pyc'], binaries) def test_diff16(self): data = """Index: d3/d =================================================================== --- d3/d (revision 0) +++ d3/d (revision 6) @@ -0,0 +1 @@ +d Property changes on: d3 ___________________________________________________________________ Added: svn:externals + ^/trunk/common/ext ext3 Property changes on: . ___________________________________________________________________ Added: svn:mergeinfo Merged /branches/branch:r4-5 """ changed = stupid.parsediff(data) self.assertEqual(['d3/d', 'd3', '.'], [f.name for f in changed]) data = """Property changes on: empty1 ___________________________________________________________________ Deleted: svn:executable - * Property changes on: empty2 ___________________________________________________________________ Added: svn:executable + * Property changes on: binary1 ___________________________________________________________________ Deleted: svn:executable - * Property changes on: text1 ___________________________________________________________________ Deleted: svn:executable - * Property changes on: binary2 ___________________________________________________________________ Added: svn:executable + * Property changes on: text2 ___________________________________________________________________ Added: svn:executable + * """ changed = stupid.parsediff(data) self.assertEqual(['empty1', 'empty2', 'binary1', 'text1', 'binary2', 'text2'], [f.name for f in changed])