def test_multiple_with_stash(self): constraints = [ iris.Constraint('air_potential_temperature'), iris.AttributeConstraint(STASH='m01s00i004') ] pp_filter = _convert_constraints(constraints) self.assertIsNone(pp_filter)
def test_no_stash(self): constraints = [ iris.Constraint('air_potential_temperature'), iris.AttributeConstraint(source='asource') ] pp_filter = _convert_constraints(constraints) self.assertIsNone(pp_filter)
def test_pp_no_constraint(self): filenames = [tests.get_data_path(('PP', 'globClim1', 'dec_subset.pp'))] pp_constraints = pp._convert_constraints(None) pp_loader = iris.fileformats.rules.Loader(pp.load, {}, convert, pp._load_rules) cubes = list(load_cubes(filenames, None, pp_loader, pp_constraints)) self.assertEqual(len(cubes), 152)
def test_pp_with_stash_constraint(self): filenames = [tests.get_data_path(("PP", "globClim1", "dec_subset.pp"))] stcon = iris.AttributeConstraint(STASH="m01s00i004") pp_constraints = pp._convert_constraints(stcon) pp_loader = iris.fileformats.rules.Loader(pp.load, {}, convert) cubes = list(load_cubes(filenames, None, pp_loader, pp_constraints)) self.assertEqual(len(cubes), 38)
def test_pp_with_stash_constraints(self): filenames = [tests.get_data_path(('PP', 'globClim1', 'dec_subset.pp'))] stcon1 = iris.AttributeConstraint(STASH='m01s00i004') stcon2 = iris.AttributeConstraint(STASH='m01s00i010') pp_constraints = pp._convert_constraints([stcon1, stcon2]) pp_loader = iris.fileformats.rules.Loader(pp.load, {}, convert) cubes = list(load_cubes(filenames, None, pp_loader, pp_constraints)) self.assertEqual(len(cubes), 76)
def test_double_stash(self): stcube236 = mock.Mock(stash=STASH.from_msi('m01s03i236')) stcube4 = mock.Mock(stash=STASH.from_msi('m01s00i004')) stcube7 = mock.Mock(stash=STASH.from_msi('m01s00i007')) constraints = [iris.AttributeConstraint(STASH='m01s03i236'), iris.AttributeConstraint(STASH='m01s00i004')] pp_filter = _convert_constraints(constraints) self.assertTrue(pp_filter(stcube236)) self.assertTrue(pp_filter(stcube4)) self.assertFalse(pp_filter(stcube7))
def test_callable_stash(self): stcube236 = mock.Mock(stash=STASH.from_msi('m01s03i236')) stcube4 = mock.Mock(stash=STASH.from_msi('m01s00i004')) stcube7 = mock.Mock(stash=STASH.from_msi('m01s00i007')) con1 = iris.AttributeConstraint(STASH=lambda s: s.endswith("004")) con2 = iris.AttributeConstraint(STASH=lambda s: s == "m01s00i007") constraints = [con1, con2] pp_filter = _convert_constraints(constraints) self.assertFalse(pp_filter(stcube236)) self.assertTrue(pp_filter(stcube4)) self.assertTrue(pp_filter(stcube7))
def test_no_constraint(self): constraints = [] pp_filter = _convert_constraints(constraints) self.assertIsNone(pp_filter)
def _single_stash(self): constraint = iris.AttributeConstraint(STASH='m01s03i236') return _convert_constraints(constraint)
def test_stash_object(self): constraint = iris.AttributeConstraint( STASH=STASH.from_msi('m01s03i236')) pp_filter = _convert_constraints(constraint) stcube = mock.Mock(stash=STASH.from_msi('m01s03i236')) self.assertTrue(pp_filter(stcube))
def test_no_stash(self): constraints = [iris.Constraint('air_potential_temperature'), iris.AttributeConstraint(source='asource')] pp_filter = _convert_constraints(constraints) self.assertIsNone(pp_filter)
def test_multiple_with_stash(self): constraints = [iris.Constraint('air_potential_temperature'), iris.AttributeConstraint(STASH='m01s00i004')] pp_filter = _convert_constraints(constraints) self.assertIsNone(pp_filter)