code: def create_test_header(
      earth_model,
      dataset_id,
      is_full_disk,
      is_rapid_scan,
      good_qual="OK",
  ):
      """Create test header for SEVIRI L1.5 product.
  
      Header includes mandatory attributes for NativeMSGFileHandler.get_area_extent
      """
      if dataset_id["name"] == "HRV":
          reference_grid = "ReferenceGridHRV"
          column_dir_grid_step = 1.0001343488693237
          line_dir_grid_step = 1.0001343488693237
      else:
          reference_grid = "ReferenceGridVIS_IR"
          column_dir_grid_step = 3.0004031658172607
          line_dir_grid_step = 3.0004031658172607
  
      if is_full_disk:
          north = 3712
          east = 1
          west = 3712
          south = 1
          n_visir_cols = 3712
          n_visir_lines = 3712
          n_hrv_cols = 11136
          n_hrv_lines = 11136
          ssp_lon = 0
      elif is_rapid_scan:
          north = 3712
          east = 1
          west = 3712
          south = 2321
          n_visir_cols = 3712
          n_visir_lines = 1392
          n_hrv_cols = 11136
          n_hrv_lines = 4176
          ssp_lon = 9.5
      else:
          north = 3574
          east = 78
          west = 2591
          south = 1746
          n_visir_cols = 2516
          n_visir_lines = north - south + 1
          n_hrv_cols = n_visir_cols * 3
          n_hrv_lines = n_visir_lines * 3
          ssp_lon = 0
      header = {
          "15_MAIN_PRODUCT_HEADER": {
              "QQOV": {"Name": "QQOV", "Value": good_qual}
          },
          "15_DATA_HEADER": {
              "ImageDescription": {
                  reference_grid: {
                      "ColumnDirGridStep": column_dir_grid_step,
                      "LineDirGridStep": line_dir_grid_step,
                      "GridOrigin": 2,  # south-east corner
                  },
                  "ProjectionDescription": {"LongitudeOfSSP": ssp_lon},
              },
              "GeometricProcessing": {
                  "EarthModel": {
                      "TypeOfEarthModel": earth_model,
                      "EquatorialRadius": 6378169.0,
                      "NorthPolarRadius": 6356583.800000001,
                      "SouthPolarRadius": 6356583.800000001,
                  }
              },
              "SatelliteStatus": {
                  "SatelliteDefinition": {"SatelliteId": 324}
              },
          },
          "15_SECONDARY_PRODUCT_HEADER": {
              "NorthLineSelectedRectangle": {"Value": north},
              "EastColumnSelectedRectangle": {"Value": east},
              "WestColumnSelectedRectangle": {"Value": west},
              "SouthLineSelectedRectangle": {"Value": south},
              "SelectedBandIDs": {"Value": "xxxxxxxxxxxx"},
              "NumberColumnsVISIR": {"Value": n_visir_cols},
              "NumberLinesVISIR": {"Value": n_visir_lines},
              "NumberColumnsHRV": {"Value": n_hrv_cols},
              "NumberLinesHRV": {"Value": n_hrv_lines},
          },
      }
  
      return header
  
imports: from __future__ import annotations
  import os
  import unittest
  import warnings
  from datetime import datetime
  from unittest import mock
  import dask.array
  import numpy
  import pytest
  import xarray
  from satpy.readers.eum_base import recarray2dict, time_cds_short
  from satpy.readers.seviri_l1b_native import ASCII_STARTSWITH, ImageBoundaries, NativeMSGFileHandler, Padder, get_available_channels, has_archive_header
  from satpy.tests.reader_tests.test_seviri_base import ORBIT_POLYNOMIALS, ORBIT_POLYNOMIALS_INVALID
  from satpy.tests.reader_tests.test_seviri_l1b_calibration import TestFileHandlerCalibrationBase
  from satpy.tests.utils import assert_attrs_equal, make_dataid
label_desc: Use image node_id 1 for calling a global function with example usage: create_test_header(earth_model, dataset_id, is_full_disk, is_rapid_scan, good_qual) and returns: header