def METHOD_NAME(self, request_warning):
    grib_lconv_opt = 'iris_grib._load_convert.options'
    with mock.patch(grib_lconv_opt, warn_on_unsupported=request_warning):
        metadata = deepcopy(self.metadata)
        perturbationNumber = 666
        section = {'productDefinitionTemplateNumber': 11,
                   'perturbationNumber': perturbationNumber,
                   'hoursAfterDataCutoff': 1,
                   'minutesAfterDataCutoff': 1,
                   'numberOfTimeRange': 1,
                   'typeOfStatisticalProcessing': 1,
                   'typeOfTimeIncrement': 2,
                   'timeIncrement': 0,
                   'yearOfEndOfOverallTimeInterval': 2000,
                   'monthOfEndOfOverallTimeInterval': 1,
                   'dayOfEndOfOverallTimeInterval': 1,
                   'hourOfEndOfOverallTimeInterval': 1,
                   'minuteOfEndOfOverallTimeInterval': 0,
                   'secondOfEndOfOverallTimeInterval': 1}
        forecast_reference_time = mock.Mock()
        # The called being tested.
        product_definition_template_11(section, metadata,
                                       forecast_reference_time)
        expected = {'cell_methods': [], 'aux_coords_and_dims': []}
        expected['cell_methods'].append(CellMethod(method='sum',
                                                   coords=('time',)))
        realization = DimCoord(perturbationNumber,
                               standard_name='realization',
                               units='no_unit')
        expected['aux_coords_and_dims'].append((realization, None))
        self.maxDiff = None
        self.assertEqual(metadata['aux_coords_and_dims'][-1],
                         expected['aux_coords_and_dims'][0])
        self.assertEqual(metadata['cell_methods'][-1],
                         expected['cell_methods'][0])
        if request_warning:
            warn_msgs = [mcall[1][0] for mcall in warnings.warn.mock_calls]
            expected_msgs = ['type of ensemble', 'number of forecasts']
            for emsg in expected_msgs:
                matches = [wmsg for wmsg in warn_msgs if emsg in wmsg]
                self.assertEqual(len(matches), 1)
                warn_msgs.remove(matches[0])
        else:
            self.assertEqual(len(warnings.warn.mock_calls), 0)