cloudant / python-cloudant

A Python library for Cloudant and CouchDB
Apache License 2.0
163 stars 55 forks source link

Querying a view with a boolean type key raises a CloudantArgumentError #494

Closed rajahaidar closed 3 years ago

rajahaidar commented 3 years ago

Bug Description

1. Steps to reproduce and the simplest code sample possible to demonstrate the issue

Create a cloudant database view, and attempt to query the view using the python-cloudant library as follows:

results = database.get_view_result('_design/doc', 'view-name', raw_result=True, key=False)

The above code will raise a CloudantArgumentError due to the validation on this line https://github.com/cloudant/python-cloudant/blob/33781463ff85c8bb535bd6ede2049e4d3bec6c4c/src/cloudant/_common_util.py#L192

2. What you expected to happen

The expected outcome would be that the view get filtered by the boolean type key instead of raising the error

I removed the validation locally and reinitiated the view query, and the key filtered fine from the CouchDB library end i.e. their library accepted a boolean type for the key argument

3. What actually happened

A CloudantArgumentError was raised when trying to filter by a boolean value for the argument key

Environment details

Python 3.9.2 Database server: IBM Cloudant

rajahaidar commented 3 years ago

Please let me know if you would like me to submit a PR with a fix for this

emlaver commented 3 years ago

Hi @rajahaidar thanks for bringing this to our attention. Yes, please open a PR that includes the fix and a test case.