| Index: tests/rietveld_test.py
|
| diff --git a/tests/rietveld_test.py b/tests/rietveld_test.py
|
| index 7551e4b803201bbf0e671c7f3ef09d646a97398d..40092556f56fe7df6dfad24602aae3576c75dc1a 100755
|
| --- a/tests/rietveld_test.py
|
| +++ b/tests/rietveld_test.py
|
| @@ -15,28 +15,10 @@ sys.path.insert(0, os.path.join(ROOT_DIR, '..'))
|
|
|
| import patch
|
| import rietveld
|
| +from tests.patches_data import GIT, RAW
|
|
|
| # Access to a protected member XX of a client class
|
| # pylint: disable=W0212
|
| -GIT_COPY_FULL = (
|
| - 'diff --git a/PRESUBMIT.py b/file_a\n'
|
| - 'similarity index 100%\n'
|
| - 'copy from PRESUBMIT.py\n'
|
| - 'copy to file_a\n')
|
| -
|
| -
|
| -NORMAL_DIFF = (
|
| - '--- file_a\n'
|
| - '+++ file_a\n'
|
| - '@@ -80,10 +80,13 @@\n'
|
| - ' // Foo\n'
|
| - ' // Bar\n'
|
| - ' void foo() {\n'
|
| - '- return bar;\n'
|
| - '+ return foo;\n'
|
| - ' }\n'
|
| - ' \n'
|
| - ' \n')
|
|
|
|
|
| def _api(files):
|
| @@ -82,6 +64,7 @@ class RietveldTest(unittest.TestCase):
|
| p,
|
| filename,
|
| diff,
|
| + source_filename=None,
|
| is_binary=False,
|
| is_delete=False,
|
| is_git_diff=False,
|
| @@ -90,6 +73,7 @@ class RietveldTest(unittest.TestCase):
|
| svn_properties=None):
|
| svn_properties = svn_properties or []
|
| self.assertEquals(p.filename, filename)
|
| + self.assertEquals(p.source_filename, source_filename)
|
| self.assertEquals(p.is_binary, is_binary)
|
| self.assertEquals(p.is_delete, is_delete)
|
| if hasattr(p, 'is_git_diff'):
|
| @@ -111,40 +95,26 @@ class RietveldTest(unittest.TestCase):
|
| self.assertEquals('file_a', e.filename)
|
|
|
| def test_get_patch_2_files(self):
|
| - diff1 = (
|
| - '--- /dev/null\n'
|
| - '+++ file_a\n'
|
| - '@@ -0,0 +1 @@\n'
|
| - '+bar\n')
|
| - diff2 = (
|
| - '--- file_b\n'
|
| - '+++ file_b\n'
|
| - '@@ -0,0 +1,1 @@\n'
|
| - '+bar\n')
|
| self.requests = [
|
| ('/api/123/456',
|
| - _api({'file_a': _file('A'), 'file_b': _file('M', chunk_id=790)})),
|
| - ('/download/issue123_456_789.diff', diff1),
|
| - ('/download/issue123_456_790.diff', diff2),
|
| + _api({'foo': _file('A '), 'file_a': _file('M ', chunk_id=790)})),
|
| + ('/download/issue123_456_789.diff', RAW.NEW),
|
| + ('/download/issue123_456_790.diff', RAW.NEW_NOT_NULL),
|
| ]
|
| patches = self.rietveld.get_patch(123, 456)
|
| self.assertEquals(2, len(patches.patches))
|
| - self._check_patch(patches.patches[0], 'file_a', diff1, is_new=True)
|
| - self._check_patch(patches.patches[1], 'file_b', diff2)
|
| + self._check_patch(patches.patches[0], 'foo', RAW.NEW, is_new=True)
|
| + # TODO(maruel): svn sucks.
|
| + self._check_patch(patches.patches[1], 'file_a', RAW.NEW_NOT_NULL)
|
|
|
| def test_get_patch_add(self):
|
| - diff = (
|
| - '--- /dev/null\n'
|
| - '+++ file_a\n'
|
| - '@@ -0,0 +1 @@\n'
|
| - '+bar\n')
|
| self.requests = [
|
| - ('/api/123/456', _api({'file_a': _file('A')})),
|
| - ('/download/issue123_456_789.diff', diff),
|
| + ('/api/123/456', _api({'foo': _file('A ')})),
|
| + ('/download/issue123_456_789.diff', RAW.NEW),
|
| ]
|
| patches = self.rietveld.get_patch(123, 456)
|
| self.assertEquals(1, len(patches.patches))
|
| - self._check_patch(patches.patches[0], 'file_a', diff, is_new=True)
|
| + self._check_patch(patches.patches[0], 'foo', RAW.NEW, is_new=True)
|
|
|
| def test_invalid_status(self):
|
| self.requests = [
|
| @@ -158,60 +128,55 @@ class RietveldTest(unittest.TestCase):
|
|
|
| def test_add_plus_merge(self):
|
| # svn:mergeinfo is dropped.
|
| - diff = GIT_COPY_FULL
|
| properties = (
|
| '\nAdded: svn:mergeinfo\n'
|
| ' Merged /branches/funky/file_b:r69-2775\n')
|
| self.requests = [
|
| ('/api/123/456',
|
| - _api({'file_a': _file('A+', property_changes=properties)})),
|
| - ('/download/issue123_456_789.diff', diff),
|
| + _api({'pp': _file('A+', property_changes=properties)})),
|
| + ('/download/issue123_456_789.diff', GIT.COPY),
|
| ]
|
| patches = self.rietveld.get_patch(123, 456)
|
| self.assertEquals(1, len(patches.patches))
|
| self._check_patch(
|
| patches.patches[0],
|
| - 'file_a',
|
| - diff,
|
| + 'pp',
|
| + GIT.COPY,
|
| is_git_diff=True,
|
| is_new=True,
|
| - patchlevel=1)
|
| + patchlevel=1,
|
| + source_filename='PRESUBMIT.py')
|
|
|
| def test_add_plus_eol_style(self):
|
| - diff = GIT_COPY_FULL
|
| properties = '\nAdded: svn:eol-style\n + LF\n'
|
| self.requests = [
|
| ('/api/123/456',
|
| - _api({'file_a': _file('A+', property_changes=properties)})),
|
| - ('/download/issue123_456_789.diff', diff),
|
| + _api({'pp': _file('A+', property_changes=properties)})),
|
| + ('/download/issue123_456_789.diff', GIT.COPY),
|
| ]
|
| patches = self.rietveld.get_patch(123, 456)
|
| self.assertEquals(1, len(patches.patches))
|
| self._check_patch(
|
| patches.patches[0],
|
| - 'file_a',
|
| - diff,
|
| + 'pp',
|
| + GIT.COPY,
|
| is_git_diff=True,
|
| is_new=True,
|
| patchlevel=1,
|
| + source_filename='PRESUBMIT.py',
|
| svn_properties=[('svn:eol-style', 'LF')])
|
|
|
| def test_add_empty(self):
|
| - # http://codereview.chromium.org/api/7530007/5001
|
| - # http://codereview.chromium.org/download/issue7530007_5001_4011.diff
|
| - diff = (
|
| - 'Index: scripts/master/factory/skia/__init__.py\n'
|
| - '===================================================================\n')
|
| self.requests = [
|
| ('/api/123/456', _api({'__init__.py': _file('A ', num_chunks=0)})),
|
| - ('/download/issue123_456_789.diff', diff),
|
| + ('/download/issue123_456_789.diff', RAW.CRAP_ONLY),
|
| ]
|
| patches = self.rietveld.get_patch(123, 456)
|
| self.assertEquals(1, len(patches.patches))
|
| self._check_patch(
|
| patches.patches[0],
|
| '__init__.py',
|
| - diff,
|
| + RAW.CRAP_ONLY,
|
| is_new=True)
|
|
|
| def test_delete(self):
|
| @@ -223,19 +188,18 @@ class RietveldTest(unittest.TestCase):
|
| self._check_patch(patches.patches[0], 'file_a', None, is_delete=True)
|
|
|
| def test_m_plus(self):
|
| - diff = NORMAL_DIFF
|
| properties = '\nAdded: svn:eol-style\n + LF\n'
|
| self.requests = [
|
| ('/api/123/456',
|
| - _api({'file_a': _file('M+', property_changes=properties)})),
|
| - ('/download/issue123_456_789.diff', diff),
|
| + _api({'chrome/file.cc': _file('M+', property_changes=properties)})),
|
| + ('/download/issue123_456_789.diff', RAW.PATCH),
|
| ]
|
| patches = self.rietveld.get_patch(123, 456)
|
| self.assertEquals(1, len(patches.patches))
|
| self._check_patch(
|
| patches.patches[0],
|
| - 'file_a',
|
| - diff,
|
| + 'chrome/file.cc',
|
| + RAW.PATCH,
|
| svn_properties=[('svn:eol-style', 'LF')])
|
|
|
| def test_m_plus_unknown_prop(self):
|
| @@ -250,6 +214,20 @@ class RietveldTest(unittest.TestCase):
|
| except patch.UnsupportedPatchFormat, e:
|
| self.assertEquals('file_a', e.filename)
|
|
|
| + def test_get_patch_moved(self):
|
| + self.requests = [
|
| + ('/api/123/456', _api({'file_b': _file('A+')})),
|
| + ('/download/issue123_456_789.diff', RAW.MINIMAL_RENAME),
|
| + ]
|
| + patches = self.rietveld.get_patch(123, 456)
|
| + self.assertEquals(1, len(patches.patches))
|
| + self._check_patch(
|
| + patches.patches[0],
|
| + 'file_b',
|
| + RAW.MINIMAL_RENAME,
|
| + source_filename='file_a',
|
| + is_new=True)
|
| +
|
| def test_svn_properties(self):
|
| # Line too long (N/80)
|
| # pylint: disable=C0301
|
| @@ -288,38 +266,6 @@ class RietveldTest(unittest.TestCase):
|
| # TODO(maruel): Change with no diff, only svn property change:
|
| # http://codereview.chromium.org/6462019/
|
|
|
| - def test_get_patch_moved(self):
|
| - output = (
|
| - '{\n'
|
| - ' "files":\n'
|
| - ' {\n'
|
| - ' "file_a":\n'
|
| - ' {\n'
|
| - ' "status": "A+",\n'
|
| - ' "is_binary": false,\n'
|
| - ' "num_chunks": 1,\n'
|
| - ' "id": 789\n'
|
| - ' }\n'
|
| - ' }\n'
|
| - '}\n')
|
| - diff = (
|
| - '--- /dev/null\n'
|
| - '+++ file_a\n'
|
| - '@@ -0,0 +1 @@\n'
|
| - '+foo\n')
|
| - r = rietveld.Rietveld('url', 'email', 'password')
|
| - def _send(args, **kwargs):
|
| - if args == '/api/123/456':
|
| - return output
|
| - elif args == '/download/issue123_456_789.diff':
|
| - return diff
|
| - else:
|
| - self.fail()
|
| - r._send = _send
|
| - patches = r.get_patch(123, 456)
|
| - self.assertEquals(diff, patches.patches[0].get())
|
| - self.assertEquals([], patches.patches[0].svn_properties)
|
| -
|
|
|
| if __name__ == '__main__':
|
| logging.basicConfig(level=logging.ERROR)
|
|
|