Remove more py2 workarounds. (#716)
diff --git a/mobly/records.py b/mobly/records.py
index c4f05cd..3201bed 100644
--- a/mobly/records.py
+++ b/mobly/records.py
@@ -256,15 +256,10 @@
try:
self.details = str(content)
except UnicodeEncodeError:
- if sys.version_info < (3, 0):
- # If Py2 threw encode error, convert to unicode.
- self.details = unicode(content)
- else:
- # We should never hit this in Py3, if this happens, record
- # an encoded version of the content for users to handle.
- logging.error('Unable to decode "%s" in Py3, encoding in utf-8.',
- content)
- self.details = content.encode('utf-8')
+ # We should never hit this in Py3, But if this happens, record
+ # an encoded version of the content for users to handle.
+ logging.error('Unable to decode "%s" in Py3, encoding in utf-8.', content)
+ self.details = content.encode('utf-8')
def to_dict(self):
result = {}
diff --git a/mobly/utils.py b/mobly/utils.py
index f6c2249..5d63c1d 100644
--- a/mobly/utils.py
+++ b/mobly/utils.py
@@ -26,7 +26,6 @@
import re
import string
import subprocess
-import sys
import threading
import time
import traceback
@@ -298,15 +297,10 @@
exceptions.append(exc)
if raise_on_exception and exceptions:
error_messages = []
- if sys.version_info < (3, 0):
- for exception in exceptions:
- error_messages.append(
- unicode(exception.message, encoding='utf-8', errors='replace'))
- else:
- for exception in exceptions:
- error_messages.append(''.join(
- traceback.format_exception(exception.__class__, exception,
- exception.__traceback__)))
+ for exception in exceptions:
+ error_messages.append(''.join(
+ traceback.format_exception(exception.__class__, exception,
+ exception.__traceback__)))
raise RuntimeError('\n\n'.join(error_messages))
return return_vals
diff --git a/tests/mobly/base_instrumentation_test_test.py b/tests/mobly/base_instrumentation_test_test.py
index edbd73b..d42b290 100755
--- a/tests/mobly/base_instrumentation_test_test.py
+++ b/tests/mobly/base_instrumentation_test_test.py
@@ -15,7 +15,6 @@
import os
import mock
import shutil
-import sys
import tempfile
from future.tests.base import unittest
@@ -129,18 +128,6 @@
self.assertIsInstance(actual_test.termination_signal.exception,
expected_signal)
- def convert_to_raw_output(self, test_output):
- """Converts code-based strings into adb output strings.
-
- In python3, adb returns 'utf-8' encoded byte arrays, which do not work
- correctly with code-based unicode strings, so to simulate that, the raw
- instrumentation output should be converted accordingly.
- """
- if sys.version_info >= (3, 0):
- return bytes(test_output, 'utf-8')
- else:
- return bytes(test_output)
-
def assert_run_instrumentation_test(self,
instrumentation_output,
expected_executed=[],
@@ -149,8 +136,9 @@
expected_has_error=False,
prefix=None,
expected_executed_times=[]):
- result = self.run_instrumentation_test(
- self.convert_to_raw_output(instrumentation_output), prefix=prefix)
+ result = self.run_instrumentation_test(bytes(instrumentation_output,
+ 'utf-8'),
+ prefix=prefix)
if expected_has_error:
self.assertIsInstance(result.error, signals.TestError)
else:
@@ -235,9 +223,6 @@
self.assert_run_instrumentation_test(instrumentation_output,
expected_completed_and_passed=True)
- @unittest.skipUnless(
- sys.version_info >= (3, 0),
- 'Only python3 displays different string types differently.')
@mock.patch('logging.info')
def test_run_instrumentation_test_logs_correctly(self, mock_info_logger):
instrumentation_output = MOCK_EMPTY_INSTRUMENTATION_TEST
diff --git a/tests/mobly/controllers/android_device_lib/service_manager_test.py b/tests/mobly/controllers/android_device_lib/service_manager_test.py
index 83148ca..ce02d73 100755
--- a/tests/mobly/controllers/android_device_lib/service_manager_test.py
+++ b/tests/mobly/controllers/android_device_lib/service_manager_test.py
@@ -12,8 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
"""Unit tests for Mobly's ServiceManager."""
+
+import importlib
import mock
-import sys
from future.tests.base import unittest
@@ -58,11 +59,7 @@
def setUp(self):
# Reset hidden global `expects` state.
- if sys.version_info < (3, 0):
- reload(expects)
- else:
- import importlib
- importlib.reload(expects)
+ importlib.reload(expects)
def assert_recorded_one_error(self, message):
self.assertEqual(expects.recorder.error_count, 1)
diff --git a/tests/mobly/controllers/android_device_lib/snippet_client_test.py b/tests/mobly/controllers/android_device_lib/snippet_client_test.py
index 5d3c684..4cfb603 100755
--- a/tests/mobly/controllers/android_device_lib/snippet_client_test.py
+++ b/tests/mobly/controllers/android_device_lib/snippet_client_test.py
@@ -16,7 +16,6 @@
from builtins import bytes
import mock
-import sys
from future.tests.base import unittest
from mobly.controllers.android_device_lib import adb
@@ -31,18 +30,6 @@
MOCK_USER_ID = 0
-def get_print_function_name():
- """Gets the name of the print function for mocking.
-
- Returns:
- A str representing the print function to mock.
- """
- if sys.version_info >= (3, 0):
- return 'builtins.print'
- else:
- return '__builtin__.print'
-
-
class SnippetClientTest(jsonrpc_client_test_base.JsonRpcClientTestBase):
"""Unit tests for mobly.controllers.android_device_lib.snippet_client.
"""
@@ -461,7 +448,7 @@
'Unexpected EOF waiting for app to start'):
client.start_app_and_connect()
- @mock.patch(get_print_function_name())
+ @mock.patch('builtins.print')
def test_help_rpc_when_printing_by_default(self, mock_print):
client = self._make_client()
mock_rpc = mock.MagicMock()
@@ -472,7 +459,7 @@
self.assertEqual(None, result)
mock_print.assert_called_once_with(mock_rpc.return_value)
- @mock.patch(get_print_function_name())
+ @mock.patch('builtins.print')
def test_help_rpc_when_not_printing(self, mock_print):
client = self._make_client()
mock_rpc = mock.MagicMock()