@@ -802,3 +802,44 @@ def test_apm_tracing_sampling_rules_none_override(remote_config_worker):
802802 # Restore original config
803803 config .service = original_service
804804 config .env = original_env
805+
806+
807+ def test_remote_config_payload_not_includes_process_tags ():
808+ client = RemoteConfigClient ()
809+ payload = client ._build_payload ({})
810+
811+ assert "process_tags" not in payload ["client" ]["client_tracer" ]
812+
813+
814+ @pytest .mark .subprocess (env = {"DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED" : "True" })
815+ def test_remote_config_payload_includes_process_tags ():
816+ import os
817+ import sys
818+ from unittest .mock import patch
819+
820+ from ddtrace .internal .process_tags import ENTRYPOINT_BASEDIR_TAG
821+ from ddtrace .internal .process_tags import ENTRYPOINT_NAME_TAG
822+ from ddtrace .internal .process_tags import ENTRYPOINT_TYPE_SCRIPT
823+ from ddtrace .internal .process_tags import ENTRYPOINT_TYPE_TAG
824+ from ddtrace .internal .process_tags import ENTRYPOINT_WORKDIR_TAG
825+ from ddtrace .internal .remoteconfig .client import RemoteConfigClient
826+ from tests .utils import process_tag_reload
827+
828+ with (
829+ patch .object (sys , "argv" , ["/path/to/test_script.py" ]),
830+ patch .object (os , "getcwd" , return_value = "/path/to/workdir" ),
831+ ):
832+ process_tag_reload ()
833+
834+ client = RemoteConfigClient ()
835+ payload = client ._build_payload ({})
836+
837+ assert "process_tags" in payload ["client" ]["client_tracer" ]
838+
839+ process_tags = payload ["client" ]["client_tracer" ]["process_tags" ]
840+
841+ assert isinstance (process_tags , list )
842+ assert f"{ ENTRYPOINT_BASEDIR_TAG } :to" in process_tags
843+ assert f"{ ENTRYPOINT_NAME_TAG } :test_script" in process_tags
844+ assert f"{ ENTRYPOINT_TYPE_TAG } :{ ENTRYPOINT_TYPE_SCRIPT } " in process_tags
845+ assert f"{ ENTRYPOINT_WORKDIR_TAG } :workdir" in process_tags
0 commit comments