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
Project: http://git-wip-us.apache.org/repos/asf/couchdb-mango/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-mango/commit/090dc675 Tree: http://git-wip-us.apache.org/repos/asf/couchdb-mango/tree/090dc675 Diff: http://git-wip-us.apache.org/repos/asf/couchdb-mango/diff/090dc675 Branch: refs/heads/master Commit: 090dc67501d5beff6820f7fd8c77a18e46cd58ee Parents: bf44d0f Author: brkolla <[email protected]> Authored: Sun Oct 25 21:53:46 2015 -0400 Committer: brkolla <[email protected]> Committed: Tue Oct 27 14:19:05 2015 -0400 ---------------------------------------------------------------------- test/10-disable-array-length-field-test.py | 42 +++++++++++++++++++++++++ test/mango.py | 4 ++- 2 files changed, 45 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-mango/blob/090dc675/test/10-disable-array-length-field-test.py ---------------------------------------------------------------------- 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 http://git-wip-us.apache.org/repos/asf/couchdb-mango/blob/090dc675/test/mango.py ---------------------------------------------------------------------- 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 @@ class Database(object): 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 @@ class Database(object): 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:
