def test_fails_if_req_percentile_not_in_cube(self):
     """Test it raises a Value Error if req_perc not in cube."""
     plugin = WindGustDiagnostic(self.wg_perc, self.ws_perc)
     msg = ('Could not find required percentile')
     with self.assertRaisesRegex(ValueError, msg):
         plugin.extract_percentile_data(self.cube_wg, 20.0,
                                        "wind_speed_of_gust")
 def test_fails_if_data_is_not_cube(self):
     """Test it raises a Type Error if cube is not a cube."""
     plugin = WindGustDiagnostic(self.wg_perc, self.ws_perc)
     msg = ('Expecting wind_speed_of_gust data to be an instance of '
            'iris.cube.Cube but is'
            ' {0}.'.format(type(self.wg_perc)))
     with self.assertRaisesRegex(TypeError, msg):
         plugin.extract_percentile_data(self.wg_perc, self.wg_perc,
                                        "wind_speed_of_gust")
 def test_returns_correct_cube_and_coord(self):
     """Test it returns the correct Cube and Coord."""
     plugin = WindGustDiagnostic(self.wg_perc, self.ws_perc)
     result, perc_coord = (plugin.extract_percentile_data(
         self.cube_wg, self.wg_perc, "wind_speed_of_gust"))
     self.assertEqual(perc_coord.name(), "percentile")
     self.assertEqual(result.coord("percentile").points, [self.wg_perc])
 def test_basic(self):
     """Test that the function returns a Cube and Coord."""
     plugin = WindGustDiagnostic(self.wg_perc, self.ws_perc)
     result, perc_coord = (plugin.extract_percentile_data(
         self.cube_wg, self.wg_perc, "wind_speed_of_gust"))
     self.assertIsInstance(result, Cube)
     self.assertIsInstance(perc_coord, iris.coords.Coord)
 def test_warning_if_standard_names_do_not_match(self, warning_list=None):
     """Test it raises a warning if standard names do not match."""
     plugin = WindGustDiagnostic(self.wg_perc, self.ws_perc)
     warning_msg = ('Warning mismatching name for data expecting')
     result, perc_coord = (plugin.extract_percentile_data(
         self.cube_wg, self.wg_perc, "wind_speed"))
     self.assertTrue(
         any(item.category == UserWarning for item in warning_list))
     self.assertTrue(any(warning_msg in str(item) for item in warning_list))
     self.assertIsInstance(result, Cube)
     self.assertIsInstance(perc_coord, iris.coords.Coord)