diff --git a/pytroll_collectors/scisys.py b/pytroll_collectors/scisys.py index 528c1ea..406c96f 100755 --- a/pytroll_collectors/scisys.py +++ b/pytroll_collectors/scisys.py @@ -62,8 +62,8 @@ 'jpss1': 'NOAA-20', 'noaa20': 'NOAA-20', 'noaa21': 'NOAA-21', - 'noaa21': 'NOAA-22', - 'noaa21': 'NOAA-23', + 'noaa22': 'NOAA-22', + 'noaa23': 'NOAA-23', 'j01': 'NOAA-20', 'j02': 'NOAA-21', 'j03': 'NOAA-22', @@ -503,9 +503,19 @@ def stop(self): self.loop = False +def update_sensor_tuple_or_list(to_send, config): + """Update sensor tuples and lists to multiple_sensors.""" + to_send_dict = to_send.copy() + if "sensor" in to_send: + if isinstance(to_send["sensor"], list) or isinstance(to_send["sensor"], tuple): + to_send_dict["sensor"] = "multiple_sensors" + return to_send_dict + + def get_subject_from_message_and_config(to_send, config): """Get the publish topic from the message and the yaml configuration settings.""" - return compose(config['publish_topic_pattern'], to_send) + to_send_dict = update_sensor_tuple_or_list(to_send, config) + return compose(config['publish_topic_pattern'], to_send_dict) def receive_from_zmq(config_filename, diff --git a/pytroll_collectors/tests/test_scisys.py b/pytroll_collectors/tests/test_scisys.py index 728a799..3635bfe 100644 --- a/pytroll_collectors/tests/test_scisys.py +++ b/pytroll_collectors/tests/test_scisys.py @@ -291,3 +291,21 @@ def test_create_message_topic_from_message_and_config_pattern(sensor, sensor_nam subject = get_subject_from_message_and_config(to_send, config) assert subject == topic_result + + +def test_no_sensor_list_in_sending_topic(): + """Test that a list of sensors is replaced with string multiple_sensors/.""" + to_send = {'start_time': datetime.datetime(2024, 4, 23, 5, 34, 4), + 'end_time': datetime.datetime(2024, 4, 23, 5, 39, 34), + 'orbit_number': 78360, + 'platform_name': 'NOAA-19', + 'type': 'binary', + 'format': 'HRPT', + 'sensor': ('avhrr/3', 'mhs', 'amsu-a', 'hirs/4'), + 'data_processing_level': '0', + 'uid': '20240423053404_NOAA_19.hmf', + 'uri': '/path/to/dummy/hrpt/20240423053404_NOAA_19.hmf', + 'variant': 'DR'} + my_config = ({'publish_topic_pattern': "/{sensor}/{format}/TEST/"}) + subject = get_subject_from_message_and_config(to_send, my_config) + assert subject == "/multiple_sensors/HRPT/TEST/"