Title: [229630] trunk/Tools
Revision
229630
Author
[email protected]
Date
2018-03-15 11:39:43 -0700 (Thu, 15 Mar 2018)

Log Message

Add unit-test for NetworkTransaction URLError handling
https://bugs.webkit.org/show_bug.cgi?id=183664

Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/common/net/networktransaction_unittest.py:
(NetworkTransactionTest._raise_URLError): Method to raise URLError.
(NetworkTransactionTest.test_retry_on_HTTPError): Renamed from test_retry.
(NetworkTransactionTest.test_retry_on_URLError): unit-test for testing URLError handling.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (229629 => 229630)


--- trunk/Tools/ChangeLog	2018-03-15 18:30:19 UTC (rev 229629)
+++ trunk/Tools/ChangeLog	2018-03-15 18:39:43 UTC (rev 229630)
@@ -1,5 +1,17 @@
 2018-03-15  Aakash Jain  <[email protected]>
 
+        Add unit-test for NetworkTransaction URLError handling
+        https://bugs.webkit.org/show_bug.cgi?id=183664
+
+        Reviewed by Alexey Proskuryakov.
+
+        * Scripts/webkitpy/common/net/networktransaction_unittest.py:
+        (NetworkTransactionTest._raise_URLError): Method to raise URLError.
+        (NetworkTransactionTest.test_retry_on_HTTPError): Renamed from test_retry.
+        (NetworkTransactionTest.test_retry_on_URLError): unit-test for testing URLError handling.
+
+2018-03-15  Aakash Jain  <[email protected]>
+
         EWS should print the URL in logs on URLError
         https://bugs.webkit.org/show_bug.cgi?id=183651
 

Modified: trunk/Tools/Scripts/webkitpy/common/net/networktransaction_unittest.py (229629 => 229630)


--- trunk/Tools/Scripts/webkitpy/common/net/networktransaction_unittest.py	2018-03-15 18:30:19 UTC (rev 229629)
+++ trunk/Tools/Scripts/webkitpy/common/net/networktransaction_unittest.py	2018-03-15 18:39:43 UTC (rev 229630)
@@ -62,11 +62,18 @@
             raise HTTPError("http://example.com/", 500, "internal server error", None, None)
         return 42
 
+    def _raise_URLError(self):
+        self._run_count += 1
+        if self._run_count < 3:
+            from webkitpy.thirdparty.autoinstalled.mechanize import URLError
+            raise URLError("[Errno 60] Operation timed out")
+        return 43
+
     def _raise_404_error(self):
         from webkitpy.thirdparty.autoinstalled.mechanize import HTTPError
         raise HTTPError("http://foo.com/", 404, "not found", None, None)
 
-    def test_retry(self):
+    def test_retry_on_HTTPError(self):
         self._run_count = 0
         transaction = NetworkTransaction(initial_backoff_seconds=0)
         self.assertEqual(transaction.run(lambda: self._raise_500_error()), 42)
@@ -76,6 +83,17 @@
                         'WARNING: Received HTTP status 500 loading "http://example.com/".  '
                         'Retrying in 0.0 seconds...\n'])
 
+    def test_retry_on_URLError(self):
+        self._run_count = 0
+        url = ""
+        transaction = NetworkTransaction(initial_backoff_seconds=0)
+        self.assertEqual(transaction.run(lambda: self._raise_URLError(), url), 43)
+        self.assertEqual(self._run_count, 3)
+        self.assertLog(['WARNING: Received URLError: "[Errno 60] Operation timed out" while loading http://example.com/. '
+                        'Retrying in 0 seconds...\n',
+                        'WARNING: Received URLError: "[Errno 60] Operation timed out" while loading http://example.com/. '
+                        'Retrying in 0.0 seconds...\n'])
+
     def test_convert_404_to_None(self):
         transaction = NetworkTransaction(convert_404_to_None=True)
         self.assertEqual(transaction.run(lambda: self._raise_404_error()), None)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to