You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@climate.apache.org by jo...@apache.org on 2014/02/23 05:45:44 UTC

svn commit: r1570978 - /incubator/climate/trunk/ocw-ui/backend/tests/test_processing.py

Author: joyce
Date: Sun Feb 23 04:45:43 2014
New Revision: 1570978

URL: http://svn.apache.org/r1570978
Log:
CLIMATE-332 - Add run evaluation test

Modified:
    incubator/climate/trunk/ocw-ui/backend/tests/test_processing.py

Modified: incubator/climate/trunk/ocw-ui/backend/tests/test_processing.py
URL: http://svn.apache.org/viewvc/incubator/climate/trunk/ocw-ui/backend/tests/test_processing.py?rev=1570978&r1=1570977&r2=1570978&view=diff
==============================================================================
--- incubator/climate/trunk/ocw-ui/backend/tests/test_processing.py (original)
+++ incubator/climate/trunk/ocw-ui/backend/tests/test_processing.py Sun Feb 23 04:45:43 2014
@@ -5,6 +5,7 @@ import datetime as dt
 
 from webtest import TestApp
 
+from backend.config import WORK_DIR
 from backend.run_webservices import app
 import backend.processing as bp
 
@@ -51,7 +52,6 @@ class TestLocalDatasetLoad(unittest.Test
 
     def test_custom_name_assignment(self):
         self.dataset_object['name'] = 'CustomName'
-        print self.dataset_object
         dataset = bp._load_local_dataset_object(self.dataset_object)
         self.assertEqual(dataset.name, self.dataset_object['name'])
 
@@ -246,6 +246,68 @@ class TestPlotTitleCreation(unittest.Tes
             'TemporalStdDev of T2'
         )
 
+class TestRunEvaluation(unittest.TestCase):
+    @classmethod
+    def setUpClass(self):
+        if not os.path.exists('d1.nc'):
+            urlretrieve(FILE_LEADER + FILE_1, 'd1.nc')
+        if not os.path.exists('d2.nc'):
+            urlretrieve(FILE_LEADER + FILE_2, 'd2.nc')
+
+    @classmethod
+    def tearDownClass(self):
+        if os.path.exists('d1.nc'):
+            os.remove('d1.nc')
+        if os.path.exists('d2.nc'):
+            os.remove('d2.nc')
+
+    def test_full_evaluation(self):
+        data = {
+            'reference_dataset': {
+                'data_source_id': 1,
+                'dataset_info': {
+                    'id': os.path.abspath('d1.nc'),
+                    'var_name': 'tasmax',
+                    'lat_name': 'lat',
+                    'lon_name': 'lon',
+                    'time_name': 'time'
+                }
+            },
+            'target_datasets': [
+                {
+                    'data_source_id': 1,
+                    'dataset_info': {
+                        'id': os.path.abspath('d2.nc'),
+                        'var_name': 'tasmax',
+                        'lat_name': 'lat',
+                        'lon_name': 'lon',
+                        'time_name': 'time'
+                    }
+                }
+            ],
+            'spatial_rebin_lat_step': 1,
+            'spatial_rebin_lon_step': 1,
+            'temporal_resolution': 365,
+            'metrics': ['Bias'],
+            'start_time': '1989-01-01 00:00:00',
+            'end_time': '2008-01-01 00:00:00',
+            'lat_min': -45.759998,
+            'lat_max': 42.240002,
+            'lon_min': -24.639999,
+            'lon_max': 60.279999,
+            'subregion_information': None
+        }
+        test_app.post_json('/processing/run_evaluation/', data)
+        result_dirs = [x for x in os.listdir(WORK_DIR)
+                       if os.path.isdir(os.path.join(WORK_DIR, x))]
+
+        eval_dir = os.path.join(WORK_DIR, result_dirs[-1])
+        eval_files = [f for f in os.listdir(eval_dir)
+                      if os.path.isfile(os.path.join(eval_dir, f))]
+
+        self.assertTrue(len(eval_files) == 1)
+        self.assertEquals(eval_files[0], 'd1.nc_compared_to_d2.nc_bias.png')
+
 def _create_fake_dataset(name):
     lats = numpy.array(range(-10, 25, 1))
     lons = numpy.array(range(-30, 40, 1))