earthengine-api/python/ee/tests/_helpers_test.py
Google Earth Engine Authors 7d936dd844 v0.1.384
PiperOrigin-RevId: 589230202
2023-12-13 20:09:23 +00:00

46 lines
1.5 KiB
Python

#!/usr/bin/env python3
"""Test for ee._helpers.
When the function in question is defined in ee/_helpers.py but exported for
public use by ee/__init__.py, the test is located here but uses the ee.-prefixed
name since that is the name we want to ensure works.
"""
import io
import ee
from ee import _helpers
from ee import apifunction
from ee import apitestcase
from ee import computedobject
import unittest
class ProfilingTest(apitestcase.ApiTestCase):
def MockValue(self, value):
"""Overridden to check for profiling-related data."""
hooked = ee.data._thread_locals.profile_hook is not None
is_get_profiles = isinstance(
value, computedobject.ComputedObject
) and value.func == apifunction.ApiFunction.lookup('Profile.getProfiles')
return 'hooked=%s getProfiles=%s' % (hooked, is_get_profiles)
def testProfilePrinting(self):
ee.data.computeValue = self.MockValue
out = io.StringIO()
with ee.profilePrinting(destination=out):
self.assertEqual('hooked=True getProfiles=False', ee.Number(1).getInfo())
self.assertEqual('hooked=False getProfiles=True', out.getvalue())
def testProfilePrintingDefaultSmoke(self):
# This will print to sys.stderr, so we can't make any assertions about the
# output. But we can check that it doesn't fail.
ee.data.computeValue = self.MockValue
with ee.profilePrinting():
self.assertEqual('hooked=True getProfiles=False', ee.Number(1).getInfo())
if __name__ == '__main__':
unittest.main()