Newer
Older
# coding=utf-8
from unittest import TestCase
from earthdiagnostics.diagnostic import DiagnosticVariableOption
from earthdiagnostics.box import Box
from earthdiagnostics.general.relink import Relink
from mock import Mock, patch
from earthdiagnostics.modelingrealm import ModelingRealms
class TestRelink(TestCase):
def setUp(self):
self.data_manager = Mock()
self.diags = Mock()
self.diags.model_version = "model_version"
self.diags.config.experiment.get_chunk_list.return_value = (
("20010101", 0, 0),
("20010101", 0, 1),
)
self.box = Box()
self.box.min_depth = 0
self.box.max_depth = 100
def fake_parse(self, value):
return value
@patch.object(DiagnosticVariableOption, "parse", fake_parse)
def test_generate_jobs(self):
jobs = Relink.generate_jobs(self.diags, ["diagnostic", "atmos", "var"])
self.assertEqual(len(jobs), 2)
self.assertEqual(
jobs[0],
Relink(
self.data_manager,
"20010101",
0,
0,
ModelingRealms.atmos,
"var",
True,
"",
),
)
self.assertEqual(
jobs[1],
Relink(
self.data_manager,
"20010101",
0,
1,
ModelingRealms.atmos,
"var",
True,
"",
),
)
jobs = Relink.generate_jobs(
self.diags, ["diagnostic", "seaIce", "var", "False"]
)
self.assertEqual(len(jobs), 2)
self.assertEqual(
jobs[0],
Relink(
self.data_manager,
"20010101",
0,
0,
ModelingRealms.seaIce,
"var",
False,
"",
),
)
self.assertEqual(
jobs[1],
Relink(
self.data_manager,
"20010101",
0,
1,
ModelingRealms.seaIce,
"var",
False,
"",
),
)
jobs = Relink.generate_jobs(
self.diags, ["diagnostic", "ocean", "var", "True", "grid"]
)
self.assertEqual(len(jobs), 2)
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
self.assertEqual(
jobs[0],
Relink(
self.data_manager,
"20010101",
0,
0,
ModelingRealms.ocean,
"var",
True,
"grid",
),
)
self.assertEqual(
jobs[1],
Relink(
self.data_manager,
"20010101",
0,
1,
ModelingRealms.ocean,
"var",
True,
"grid",
),
)
with self.assertRaises(Exception):
with self.assertRaises(Exception):
Relink.generate_jobs(
self.diags, ["diagnostic", "0", "0", "0", "0", "0", "0", "0"]
)
def test_str(self):
mixed = Relink(
self.data_manager,
"20010101",
0,
0,
ModelingRealms.ocean,
"var",
True,
"grid",
)
self.assertEqual(
str(mixed),
"Relink output Startdate: 20010101 Member: 0 Chunk: 0 "
"Move old: True Variable: ocean:var Grid: grid",
)