This is an automated email from the ASF dual-hosted git repository.

nchung pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-sdap-ingester.git


The following commit(s) were added to refs/heads/dev by this push:
     new ce9567b  SDAP-340:fix:allow null when standard_name is missing (#39)
ce9567b is described below

commit ce9567bcc8010c7a7834e029bf3e75585cdc74cf
Author: wphyojpl <[email protected]>
AuthorDate: Wed Sep 8 15:31:55 2021 -0700

    SDAP-340:fix:allow null when standard_name is missing (#39)
    
    * feat:allow null when standard_name is missing
    
    * feat: add test case to confirm string value can be converted to object 
via json lib
---
 .../granule_ingester/processors/TileSummarizingProcessor.py        | 7 ++-----
 .../tests/reading_processors/test_TileSummarizingProcessor.py      | 4 ++++
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git 
a/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py 
b/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py
index 2caeb0e..602fcd6 100644
--- a/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py
+++ b/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py
@@ -100,11 +100,8 @@ class TileSummarizingProcessor(TileProcessor):
             pass
         logger.debug(f'calc standard_name')
         standard_names = [dataset.variables[k].attrs.get('standard_name')for k 
in data_var_name]
-        if any([k is None for k in standard_names]):
-            logger.debug(f'one or more of standard_names is None. skipping. 
{standard_names}')
-        else:
-            logger.debug(f'using standard_names as all are not None: 
{standard_names}')
-            tile_summary.standard_name = json.dumps(standard_names if 
len(standard_names) > 1 else standard_names[0])
+        logger.debug(f'using standard_names: {standard_names}')
+        tile_summary.standard_name = json.dumps(standard_names if 
len(standard_names) > 1 else standard_names[0])
         logger.debug(f'copy tile_summary to tile')
         tile.summary.CopyFrom(tile_summary)
         return tile
diff --git 
a/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py 
b/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py
index 5bf7462..3f78114 100644
--- a/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py
+++ b/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py
@@ -74,6 +74,8 @@ class TestTileSummarizingProcessor(unittest.TestCase):
             output_tile = reading_processor._generate_tile(ds, 
dimensions_to_slices, input_tile)
             tile_summary_processor = TileSummarizingProcessor('test')
             new_tile = tile_summary_processor.process(tile=output_tile, 
dataset=ds)
+            self.assertEqual('null', new_tile.summary.standard_name, f'wrong 
new_tile.summary.standard_name')
+            self.assertEqual(None, json.loads(new_tile.summary.standard_name), 
f'unable to convert new_tile.summary.standard_name from JSON')
             self.assertTrue(abs(new_tile.summary.stats.mean - 0.26137) < 
0.001, f'mean value is not close expected: 0.26137. actual: 
{new_tile.summary.stats.mean}')
 
     def test_hls_multiple_var_01(self):
@@ -104,4 +106,6 @@ class TestTileSummarizingProcessor(unittest.TestCase):
             output_tile = reading_processor._generate_tile(ds, 
dimensions_to_slices, input_tile)
             tile_summary_processor = TileSummarizingProcessor('test')
             new_tile = tile_summary_processor.process(tile=output_tile, 
dataset=ds)
+            self.assertEqual('[null, null, null, null, null, null, null, null, 
null, null, null]', new_tile.summary.standard_name, f'wrong 
new_tile.summary.standard_name')
+            self.assertEqual([None for _ in range(11)], 
json.loads(new_tile.summary.standard_name), f'unable to convert 
new_tile.summary.standard_name from JSON')
             self.assertTrue(abs(new_tile.summary.stats.mean - 0.26523) < 
0.001, f'mean value is not close expected: 0.26523. actual: 
{new_tile.summary.stats.mean}')
\ No newline at end of file

Reply via email to