diff --git a/tools_webrtc/autoroller/roll_deps.py b/tools_webrtc/autoroller/roll_deps.py index 0aa2320a63..269200bff5 100755 --- a/tools_webrtc/autoroller/roll_deps.py +++ b/tools_webrtc/autoroller/roll_deps.py @@ -18,7 +18,7 @@ import os import re import subprocess import sys -import urllib +import urllib.request def FindSrcDirPath(): diff --git a/tools_webrtc/autoroller/unittests/roll_deps_test.py b/tools_webrtc/autoroller/unittests/roll_deps_test.py index 688b6651b8..42db81c258 100755 --- a/tools_webrtc/autoroller/unittests/roll_deps_test.py +++ b/tools_webrtc/autoroller/unittests/roll_deps_test.py @@ -323,6 +323,40 @@ class TestChooseCQMode(unittest.TestCase): self.assertEqual(ChooseCQMode(False, 100, 500000, 500100), 2) +class TestReadUrlContent(unittest.TestCase): + def setUp(self): + self.url = 'http://localhost+?format=TEXT' + + def testReadUrlContent(self): + url_mock = mock.Mock() + roll_deps.urllib.request.urlopen = url_mock + + roll_deps.ReadUrlContent(self.url) + + calls = [ + mock.call('http://localhost+?format=TEXT'), + mock.call().readlines(), + mock.call().close() + ] + self.assertEqual(url_mock.mock_calls, calls) + + def testReadUrlContentError(self): + roll_deps.logging = mock.Mock() + + readlines_mock = mock.Mock() + readlines_mock.readlines = mock.Mock( + side_effect=IOError('Connection error')) + readlines_mock.close = mock.Mock() + + url_mock = mock.Mock(return_value=readlines_mock) + roll_deps.urllib.request.urlopen = url_mock + + try: + roll_deps.ReadUrlContent(self.url) + except OSError: + self.assertTrue(roll_deps.logging.exception.called) + + def _SetupGitLsRemoteCall(cmd_fake, url, revision): cmd = ['git', 'ls-remote', url, revision] cmd_fake.AddExpectation(cmd, _returns=(revision, None))