Max Shawabkeh 191eea5e53 v0.1.17
2014-02-06 13:31:06 -08:00

54 lines
1.4 KiB
Python

"""Test for the ee.date module."""
import datetime
import unittest
import ee
from ee import apitestcase
class DateTest(apitestcase.ApiTestCase):
def testDate(self):
"""Verifies date constructors."""
datefunc = ee.ApiFunction.lookup('Date')
d1 = ee.Date('2000-01-01')
d2 = ee.Date(946684800000)
d3 = ee.Date(datetime.datetime(2000, 1, 1))
d4 = ee.Date(d3)
dates = [d1, d2, d3, d4]
for d in dates:
self.assertTrue(isinstance(d, ee.Date))
self.assertEquals(datefunc, d.func)
self.assertEquals(d1.args, {'value': '2000-01-01'})
for d in dates[1:]:
self.assertEquals(d.args['value'], 946684800000)
d5 = ee.Date(ee.CustomFunction.variable('Date', 'foo'))
self.assertTrue(isinstance(d5, ee.Date))
self.assertTrue(ee.types.isVarOfType(d5, ee.Date))
v = ee.CustomFunction.variable('Number', 'bar')
d6 = ee.Date(v)
self.assertTrue(isinstance(d6, ee.Date))
# In python, unlike javascript, casting a Variable just retypes it.
# TODO(user): Fix Variable casting in the python client.
self.assertTrue(ee.types.isVarOfType(d6, ee.Date))
# A non-date ComputedObject, promotion and casting.
obj = ee.ApiFunction.call_('DateRange', 1, 2)
d7 = ee.Date(obj)
self.assertTrue(isinstance(d7, ee.Date))
self.assertEquals(datefunc, d7.func)
self.assertEquals({'value': obj}, d7.args)
if __name__ == '__main__':
unittest.main()