code: def test_payload_selectors():
      response = request_with_validation(
          api="/collections/{collection_name}",
          method="GET",
          path_params={"collection_name": collection_name},
      )
      assert response.ok
  
      # Search without payload selector
      response = request_with_validation(
          api="/collections/{collection_name}/points/scroll",
          method="POST",
          path_params={"collection_name": collection_name},
          body={
              "filter": {
                  "must": [
                      {
                          "key": "country.name",
                          "match": {
                              "value": "Germany",
                          },
                      }
                  ]
              },
              "limit": 3,
              "with_payload": False,
          },
      )
      assert response.ok
      assert len(response.json()["result"]["points"]) == 1
      assert response.json()["result"]["points"][0]["payload"] is None
  
      # Search with payload selector ALL
      response = request_with_validation(
          api="/collections/{collection_name}/points/scroll",
          method="POST",
          path_params={"collection_name": collection_name},
          body={
              "filter": {
                  "must": [
                      {
                          "key": "country.name",
                          "match": {
                              "value": "Germany",
                          },
                      }
                  ]
              },
              "limit": 3,
              "with_payload": True,
          },
      )
      assert response.ok
      assert response.json()["result"]["points"][0]["payload"] == {
          "country": {
              "name": "Germany",
              "capital": "Berlin",
              "cities": [
                  {
                      "name": "Berlin",
                      "population": 3.7,
                      "location": {
                          "lon": 13.76116,
                          "lat": 52.33826,
                      },
                      "sightseeing": ["Brandenburg Gate", "Reichstag"],
                  },
                  {
                      "name": "Munich",
                      "population": 1.5,
                      "location": {
                          "lon": 11.57549,
                          "lat": 48.13743,
                      },
                      "sightseeing": ["Marienplatz", "Olympiapark"],
                  },
                  {
                      "name": "Hamburg",
                      "population": 1.8,
                      "location": {
                          "lon": 9.99368,
                          "lat": 53.55108,
                      },
                      "sightseeing": ["Reeperbahn", "Elbphilharmonie"],
                  },
              ],
          }
      }
  
      # Search with payload selector include paths
      response = request_with_validation(
          api="/collections/{collection_name}/points/scroll",
          method="POST",
          path_params={"collection_name": collection_name},
          body={
              "filter": {
                  "must": [
                      {
                          "key": "country.name",
                          "match": {
                              "value": "Germany",
                          },
                      }
                  ]
              },
              "limit": 3,
              "with_payload": {
                  "include": ["country.name", "country.capital"],
              },
          },
      )
      assert response.ok
      assert response.json()["result"]["points"][0]["payload"] == {
          "country": {
              "name": "Germany",
              "capital": "Berlin",
          }
      }
  
      # Search with payload selector include paths
      response = request_with_validation(
          api="/collections/{collection_name}/points/scroll",
          method="POST",
          path_params={"collection_name": collection_name},
          body={
              "filter": {
                  "must": [
                      {
                          "key": "country.name",
                          "match": {
                              "value": "Germany",
                          },
                      }
                  ]
              },
              "limit": 3,
              "with_payload": {
                  "include": ["country.cities"],
              },
          },
      )
      assert response.ok
      assert response.json()["result"]["points"][0]["payload"] == {
          "country": {
              "cities": [
                  {
                      "name": "Berlin",
                      "population": 3.7,
                      "location": {
                          "lon": 13.76116,
                          "lat": 52.33826,
                      },
                      "sightseeing": ["Brandenburg Gate", "Reichstag"],
                  },
                  {
                      "name": "Munich",
                      "population": 1.5,
                      "location": {
                          "lon": 11.57549,
                          "lat": 48.13743,
                      },
                      "sightseeing": ["Marienplatz", "Olympiapark"],
                  },
                  {
                      "name": "Hamburg",
                      "population": 1.8,
                      "location": {
                          "lon": 9.99368,
                          "lat": 53.55108,
                      },
                      "sightseeing": ["Reeperbahn", "Elbphilharmonie"],
                  },
              ],
          }
      }
  
      # Search with payload selector include paths
      response = request_with_validation(
          api="/collections/{collection_name}/points/scroll",
          method="POST",
          path_params={"collection_name": collection_name},
          body={
              "filter": {
                  "must": [
                      {
                          "key": "country.name",
                          "match": {
                              "value": "Germany",
                          },
                      }
                  ]
              },
              "limit": 3,
              "with_payload": {
                  "include": ["country.cities[].name"],
              },
          },
      )
      assert response.ok
      assert response.json()["result"]["points"][0]["payload"] == {
          "country": {
              "cities": [
                  {
                      "name": "Berlin",
                  },
                  {"name": "Munich"},
                  {"name": "Hamburg"},
              ],
          }
      }
  
      # Search with payload selector exclude paths
      response = request_with_validation(
          api="/collections/{collection_name}/points/scroll",
          method="POST",
          path_params={"collection_name": collection_name},
          body={
              "filter": {
                  "must": [
                      {
                          "key": "country.name",
                          "match": {
                              "value": "Germany",
                          },
                      }
                  ]
              },
              "limit": 3,
              "with_payload": {
                  "exclude": ["country.cities"],
              },
          },
      )
      assert response.ok
      assert response.json()["result"]["points"][0]["payload"] == {
          "country": {
              "name": "Germany",
              "capital": "Berlin",
          }
      }
  
      # Search with payload selector exclude at array index
      response = request_with_validation(
          api="/collections/{collection_name}/points/scroll",
          method="POST",
          path_params={"collection_name": collection_name},
          body={
              "filter": {
                  "must": [
                      {
                          "key": "country.name",
                          "match": {
                              "value": "Germany",
                          },
                      }
                  ]
              },
              "limit": 3,
              "with_payload": {
                  "exclude": ["country.name", "country.capital"],
              },
          },
      )
      assert response.ok
      assert response.json()["result"]["points"][0]["payload"] == {
          "country": {
              "cities": [
                  {
                      "name": "Berlin",
                      "population": 3.7,
                      "location": {
                          "lon": 13.76116,
                          "lat": 52.33826,
                      },
                      "sightseeing": ["Brandenburg Gate", "Reichstag"],
                  },
                  {
                      "name": "Munich",
                      "population": 1.5,
                      "location": {
                          "lon": 11.57549,
                          "lat": 48.13743,
                      },
                      "sightseeing": ["Marienplatz", "Olympiapark"],
                  },
                  {
                      "name": "Hamburg",
                      "population": 1.8,
                      "location": {
                          "lon": 9.99368,
                          "lat": 53.55108,
                      },
                      "sightseeing": ["Reeperbahn", "Elbphilharmonie"],
                  },
              ],
          }
      }
  
imports: import pytest
  from .helpers.collection_setup import drop_collection
  from .helpers.helpers import request_with_validation
  from .test_nested_payload_indexing import nested_payload_collection_setup
label_desc: Use image node_id 2 for calling a global function with example usage: test_payload_selectors() without return types