Index: tests/rietveld_test.py |
diff --git a/tests/rietveld_test.py b/tests/rietveld_test.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..6a32f64e4561159f1a6152198988b143c20453ce |
--- /dev/null |
+++ b/tests/rietveld_test.py |
@@ -0,0 +1,89 @@ |
+#!/usr/bin/env python |
+# Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+"""Unit tests for rietveld.py.""" |
+ |
+import logging |
+import os |
+import sys |
+import unittest |
+ |
+ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) |
+sys.path.insert(0, os.path.join(ROOT_DIR, '..')) |
+ |
+import patch |
+import rietveld |
+ |
+# Access to a protected member XX of a client class |
+# pylint: disable=W0212 |
+ |
+ |
+class RietveldTest(unittest.TestCase): |
+ def setUp(self): |
+ super(RietveldTest, self).setUp() |
+ self._rietveld_send = rietveld.Rietveld._send |
+ rietveld.Rietveld._send = None |
+ |
+ def tearDown(self): |
+ super(RietveldTest, self).setUp() |
+ rietveld.Rietveld._send = self._rietveld_send |
+ |
+ def test_get_patch_empty(self): |
+ rietveld.Rietveld._send = lambda x, y, payload: '{}' |
+ r = rietveld.Rietveld('url', 'email', 'password') |
+ patches = r.get_patch(123, 456) |
+ self.assertTrue(isinstance(patches, patch.PatchSet)) |
+ self.assertEquals([], patches.patches) |
+ |
+ def test_get_patch_no_status(self): |
+ rietveld.Rietveld._send = lambda x, y, payload: ( |
+ '{' |
+ ' "files":' |
+ ' {' |
+ ' "file_a":' |
+ ' {' |
+ ' }' |
+ ' }' |
+ '}') |
+ r = rietveld.Rietveld('url', 'email', 'password') |
+ try: |
+ r.get_patch(123, 456) |
+ self.fail() |
+ except patch.UnsupportedPatchFormat, e: |
+ self.assertEquals('file_a', e.filename) |
+ |
+ def test_get_patch_two_files(self): |
+ output = ( |
+ '{' |
+ ' "files":' |
+ ' {' |
+ ' "file_a":' |
+ ' {' |
+ ' "status": "A",' |
+ ' "is_binary": false,' |
+ ' "num_chunks": 1,' |
+ ' "id": 789' |
+ ' }' |
+ ' }' |
+ '}') |
+ rietveld.Rietveld._send = lambda x, y, payload: output |
+ r = rietveld.Rietveld('url', 'email', 'password') |
+ patches = r.get_patch(123, 456) |
+ self.assertTrue(isinstance(patches, patch.PatchSet)) |
+ self.assertEquals(1, len(patches.patches)) |
+ obj = patches.patches[0] |
+ self.assertEquals(patch.FilePatchDiff, obj.__class__) |
+ self.assertEquals('file_a', obj.filename) |
+ self.assertEquals([], obj.svn_properties) |
+ self.assertEquals(False, obj.is_git_diff) |
+ self.assertEquals(0, obj.patchlevel) |
+ # This is because Rietveld._send() always returns the same buffer. |
+ self.assertEquals(output, obj.get()) |
+ |
+ |
+ |
+if __name__ == '__main__': |
+ logging.basicConfig(level=logging.ERROR) |
+ unittest.main() |