Add tests to verify the effect of enabling/disabling index_array_lengths
Skip the array-length-field tests if text service is not running
Skip creating the index doc if the text service is not up
diff --git a/test/10-disable-array-length-field-test.py b/test/10-disable-array-length-field-test.py
new file mode 100644
index 0000000..0715f1d
--- /dev/null
+++ b/test/10-disable-array-length-field-test.py
@@ -0,0 +1,42 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+import mango
+import unittest
+
+
+class DisableIndexArrayLengthsTest(mango.UserDocsTextTests):
+
+ @classmethod
+ def setUpClass(klass):
+ super(DisableIndexArrayLengthsTest, klass).setUpClass()
+ if mango.has_text_service():
+ klass.db.create_text_index(ddoc="disable_index_array_lengths",
+ analyzer="keyword",
+ index_array_lengths=False)
+ klass.db.create_text_index(ddoc="explicit_enable_index_array_lengths",
+ analyzer="keyword",
+ index_array_lengths=True)
+
+ @unittest.skipUnless(mango.has_text_service(), "requires text service")
+ def test_disable_index_array_length(self):
+ docs = self.db.find({"favorites": {"$size": 4}},
+ use_index="disable_index_array_lengths")
+ for d in docs:
+ assert len(d["favorites"]) == 0
+
+ @unittest.skipUnless(mango.has_text_service(), "requires text service")
+ def test_enable_index_array_length(self):
+ docs = self.db.find({"favorites": {"$size": 4}},
+ use_index="explicit_enable_index_array_lengths")
+ for d in docs:
+ assert len(d["favorites"]) == 4
diff --git a/test/mango.py b/test/mango.py
index 5ca8367..09c45fc 100644
--- a/test/mango.py
+++ b/test/mango.py
@@ -104,7 +104,7 @@
return r.json()["result"] == "created"
def create_text_index(self, analyzer=None, selector=None, idx_type="text",
- default_field=None, fields=None, name=None, ddoc=None):
+ default_field=None, fields=None, name=None, ddoc=None,index_array_lengths=None):
body = {
"index": {
},
@@ -117,6 +117,8 @@
body["index"]["default_analyzer"] = analyzer
if default_field is not None:
body["index"]["default_field"] = default_field
+ if index_array_lengths is not None:
+ body["index"]["index_array_lengths"] = index_array_lengths
if selector is not None:
body["selector"] = selector
if fields is not None: