test_data_manager.py 2.36 KB
Newer Older
Javier Vegas-Regidor's avatar
Javier Vegas-Regidor committed
# coding=utf-8


from unittest import TestCase
Javier Vegas-Regidor's avatar
Javier Vegas-Regidor committed
from earthdiagnostics.datamanager import DataManager, Variable
from experimentmanager import ExperimentManager
from datetime import date
Javier Vegas-Regidor's avatar
Javier Vegas-Regidor committed


class TestDataManager(TestCase):
    def setUp(self):
Javier Vegas-Regidor's avatar
Javier Vegas-Regidor committed
        self.data_manager = DataManager(ExperimentManager(['20000101'], [0], 5, 3, 3), 'institution', 'model', 'expid',
                                        'datafolder', 'mon', 'experiment', 'scratch', 6)
Javier Vegas-Regidor's avatar
Javier Vegas-Regidor committed

    def test_domain_abbreviation(self):
        self.assertEquals('Omon', DataManager.domain_abbreviation('Ocean', 'mon'))
        self.assertEquals('OImon', DataManager.domain_abbreviation('seaIce', 'mon'))
        self.assertEquals('LImon', DataManager.domain_abbreviation('landIce', 'mon'))
        self.assertEquals('Amon', DataManager.domain_abbreviation('atmos', 'mon'))
        self.assertEquals('day', DataManager.domain_abbreviation('atmos', 'day'))
        self.assertEquals('6hrPlev', DataManager.domain_abbreviation('atmos', '6hr'))
Javier Vegas-Regidor's avatar
Javier Vegas-Regidor committed

    def test_get_grib_filename(self):
        self.assertEqual(self.data_manager._get_grib_filename('SH', date(2000, 1, 1)), 'ICMSHexpid+200001.grb')

    def test_get_startdate_path(self):
        self.assertEqual(self.data_manager.get_startdate_path('20000101'),
                         'datafolder/expid/cmorfiles/institution/model/experiment/S20000101')


class TestVariable(TestCase):

    def test__init__(self):
        variable = Variable('alias:alias2,name,standard_name,long_name,domain,basin,units,'
                            'valid_min,valid_max'.split(','))
        self.assertEqual(variable.short_name, 'name')
        self.assertEqual(variable.standard_name, 'standard_name')
        self.assertEqual(variable.long_name, 'long_name')
        self.assertEqual(variable.domain, 'domain')
        self.assertEqual(variable.basin, None)
        self.assertEqual(variable.units, 'units')
        self.assertEqual(variable.valid_min, 'valid_min')
        self.assertEqual(variable.valid_max, 'valid_max')

    def test_get_variable(self):
        Variable._dict_variables = dict()
        variable = Variable('alias:alias2,name,standard_name,long_name,domain,basin,units,valid_min,'
                            'valid_max'.split(','))
Javier Vegas-Regidor's avatar
Javier Vegas-Regidor committed
        Variable._dict_variables['var'] = variable
        self.assertIs(Variable.get_variable('var'), variable)
        self.assertIsNone(Variable.get_variable('novar'))