This is an automated email from the ASF dual-hosted git repository. fgreg pushed a commit to branch v1.0.0-rc1 in repository https://gitbox.apache.org/repos/asf/incubator-sdap-ningesterpy.git
commit 6ddfbdb9f99fe65ae6cf3a38e7e6484e5dc915bc Author: Nga Quach <[email protected]> AuthorDate: Thu Mar 22 13:54:37 2018 -0700 SDAP-51 Update NEXUS normalizetimebeginningofmonth python processor to zero out time (#5) * SDAP-51 Update NEXUS normalizetimebeginningofmonth python processor to zero out time * SDAP-51 Update NEXUS normalizetimebeginningofmonth python processor to zero out time --- sdap/processors/normalizetimebeginningofmonth.py | 2 +- tests/normalizetimebeginningofmonth_test.py | 47 ++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/sdap/processors/normalizetimebeginningofmonth.py b/sdap/processors/normalizetimebeginningofmonth.py index 4cc0403..c22c7cc 100644 --- a/sdap/processors/normalizetimebeginningofmonth.py +++ b/sdap/processors/normalizetimebeginningofmonth.py @@ -32,7 +32,7 @@ class NormalizeTimeBeginningOfMonth(NexusTileProcessor): timeObj = datetime.datetime.utcfromtimestamp(time) - timeObj = timeObj.replace(day=1) + timeObj = timeObj.replace(day=1, hour=0, minute=0, second=0, microsecond=0) timeObj = timezone('UTC').localize(timeObj) diff --git a/tests/normalizetimebeginningofmonth_test.py b/tests/normalizetimebeginningofmonth_test.py new file mode 100644 index 0000000..462e651 --- /dev/null +++ b/tests/normalizetimebeginningofmonth_test.py @@ -0,0 +1,47 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import unittest +from os import path + +from nexusproto import DataTile_pb2 as nexusproto +from nexusproto.serialization import from_shaped_array + +import sdap.processors + + +class TestNormalizeTimeBeginningOfMonth(unittest.TestCase): + def setUp(self): + self.module = sdap.processors.NormalizeTimeBeginningOfMonth() + + def test_normalize_time(self): + test_file = path.join(path.dirname(__file__), 'dumped_nexustiles', 'avhrr_nonempty_nexustile.bin') + + with open(test_file, 'rb') as f: + nexustile_str = f.read() + + nexus_tile_before = nexusproto.NexusTile.FromString(nexustile_str) + + self.assertEqual(1462838400, nexus_tile_before.tile.grid_tile.time) + + results = list(self.module.process(nexustile_str)) + + nexus_tile_after = results[0] + + self.assertEqual(1462060800, nexus_tile_after.tile.grid_tile.time) + + +if __name__ == '__main__': + unittest.main()
