@@ -946,6 +946,24 @@ def test_parse_diagnostics(all_mds_datadirs, layers_mds_datadirs):
946946 assert ad [key ] == val
947947
948948
949+ def test_parse_diagnostics_bad_levels (tmpdir ):
950+ from xmitgcm .utils import parse_available_diagnostics
951+ # Try parsing a 'bad' available_diagnostics.log file
952+ bad_diags_path = tmpdir / 'available_diagnostics.log'
953+ with open (bad_diags_path , 'x' ) as bad_diags :
954+ bad_diags .writelines (["" , "" , "" , "" ])
955+ bad_diags .write (" 26 |THETA |*** | |SMR MR|degC |Potential Temperature" )
956+
957+ ad = parse_available_diagnostics (bad_diags_path )
958+ expected_diags = {
959+ 'THETA' : {'dims' : ['k' , 'j' , 'i' ],
960+ 'attrs' : {'units' : 'degC' ,
961+ 'long_name' : 'Potential Temperature' ,
962+ 'standard_name' : 'THETA' }},
963+ }
964+ for key , val in expected_diags .items ():
965+ assert ad [key ] == val
966+
949967@pytest .mark .parametrize ("domain" , ['llc' , 'aste' , 'cs' ])
950968@pytest .mark .parametrize ("nx" , [90 , 270 ])
951969def test_get_extra_metadata (domain , nx ):
0 commit comments