diff --git a/src/clusterfuzz/_internal/platforms/android/device.py b/src/clusterfuzz/_internal/platforms/android/device.py index 0c8d81ca686..6db47bff3a5 100755 --- a/src/clusterfuzz/_internal/platforms/android/device.py +++ b/src/clusterfuzz/_internal/platforms/android/device.py @@ -69,6 +69,11 @@ def add_test_accounts_if_needed(): """Add test account to work with GmsCore, etc.""" + # Short-circuit: UWORKERs do not have Datastore access to retrieve + # credentials. + if environment.is_uworker(): + return + last_test_account_check_time = persistent_cache.get_value( constants.LAST_TEST_ACCOUNT_CHECK_KEY, constructor=datetime.datetime.utcfromtimestamp) diff --git a/src/clusterfuzz/_internal/tests/core/platforms/android/device_test.py b/src/clusterfuzz/_internal/tests/core/platforms/android/device_test.py index e10051fb7ef..51c2c767770 100644 --- a/src/clusterfuzz/_internal/tests/core/platforms/android/device_test.py +++ b/src/clusterfuzz/_internal/tests/core/platforms/android/device_test.py @@ -13,6 +13,8 @@ # limitations under the License. """Tests for device functions.""" +import unittest + from clusterfuzz._internal.platforms.android import device from clusterfuzz._internal.tests.test_libs import android_helpers @@ -23,3 +25,20 @@ class InitializeEnvironmentTest(android_helpers.AndroidTest): def test(self): """Ensure that initialize_environment throws no exceptions.""" device.initialize_environment() + + +class AddTestAccountsIfNeededTest(unittest.TestCase): + """Tests for add_test_accounts_if_needed.""" + + def setUp(self): + from clusterfuzz._internal.tests.test_libs import helpers + helpers.patch(self, [ + 'clusterfuzz._internal.system.environment.is_uworker', + 'clusterfuzz._internal.base.persistent_cache.get_value', + ]) + + def test_uworker_bypass(self): + """Test that uworker environment skips test account setup.""" + self.mock.is_uworker.return_value = True + device.add_test_accounts_if_needed() + self.mock.get_value.assert_not_called()