Skip to content

Commit 48d5a46

Browse files
authored
PYTHON-4332 create_search_index only sends "type" field when provided (#1573)
1 parent 2da8af0 commit 48d5a46

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

pymongo/operations.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ def __init__(
592592
self,
593593
definition: Mapping[str, Any],
594594
name: Optional[str] = None,
595-
type: Optional[str] = "search",
595+
type: Optional[str] = None,
596596
**kwargs: Any,
597597
) -> None:
598598
"""Create a Search Index instance.
@@ -613,7 +613,8 @@ def __init__(
613613
if name is not None:
614614
self.__document["name"] = name
615615
self.__document["definition"] = definition
616-
self.__document["type"] = type
616+
if type is not None:
617+
self.__document["type"] = type
617618
self.__document.update(kwargs)
618619

619620
@property

test/test_index_management.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,17 @@ def test_inputs(self):
6262
listener.reset()
6363
with self.assertRaises(OperationFailure):
6464
coll.create_search_index({"definition": definition, "arbitraryOption": 1})
65-
self.assertIn("arbitraryOption", listener.events[0].command["indexes"][0])
65+
self.assertEqual(
66+
{"definition": definition, "arbitraryOption": 1},
67+
listener.events[0].command["indexes"][0],
68+
)
69+
70+
listener.reset()
71+
with self.assertRaises(OperationFailure):
72+
coll.create_search_index({"definition": definition, "type": "search"})
73+
self.assertEqual(
74+
{"definition": definition, "type": "search"}, listener.events[0].command["indexes"][0]
75+
)
6676

6777

6878
class SearchIndexIntegrationBase(unittest.TestCase):

0 commit comments

Comments
 (0)