code: def test_query_by_names(api, smallest_online_products):
      names = [product["title"] for product in smallest_online_products]
      expected = {
          product["title"]: {product["id"]}
          for product in smallest_online_products
      }
  
      result = api._query_names(names)
      assert list(result) == names
      for name in names:
          assert set(result[name]) == expected[name]
  
      result2 = api._query_names(names * 3)
      assert result == result2
  
imports: from contextlib import contextmanager
  from datetime import datetime, date, timedelta
  import pytest
  import requests_mock
  from requests.exceptions import StreamConsumedError, ContentDecodingError, InvalidProxyURL, InvalidHeader, TooManyRedirects, ReadTimeout, SSLError
  from sentinelsat import format_query_date, SentinelAPI
  from sentinelsat.exceptions import QuerySyntaxError, QueryLengthError, UnauthorizedError
  from sentinelsat.sentinel import _format_order_by
label_desc: Use image node_id 24 for calling a global function with example usage: test_query_by_names(api, smallest_online_products) without return types