humanize_error function has type error

Bug #1665709 reported by lei lu on 2017-02-17
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
voluptuous (Ubuntu)
Undecided
Unassigned

Bug Description

The following code will trigger a type error

######################################################
import voluptuous
import voluptuous.humanize
import voluptuous.error

allowed_value = [1, 2, 3]

base = voluptuous.Schema({
    voluptuous.Required('age'): int,
    voluptuous.Required('children'): voluptuous.All(voluptuous.ExactSequence([
        {voluptuous.Required('first'): [voluptuous.Any(*allowed_value)]},
        {voluptuous.Required('second'): [voluptuous.Any(*allowed_value)]},
        ]),
        voluptuous.Length(min = 2, max=2))
        })

test = {'age': 40, 'children': [{'first': 12, 'second': 8}]}

def main():
    try:
        base(test)
    except voluptuous.error.Error as e:
        return voluptuous.humanize.humanize_error(test, e)

main()

Traceback (most recent call last):
  File "voluptuous_test.py", line 31, in <module>
    main()
  File "voluptuous_test.py", line 29, in main
    return voluptuous.humanize.humanize_error(test, e)
  File "/usr/local/lib/python2.7/site-packages/voluptuous/humanize.py", line 26, in humanize_error
    for sub_error in validation_error.errors
  File "/usr/local/lib/python2.7/site-packages/voluptuous/humanize.py", line 26, in <genexpr>
    for sub_error in validation_error.errors
  File "/usr/local/lib/python2.7/site-packages/voluptuous/humanize.py", line 29, in humanize_error
    offending_item_summary = repr(_nested_getitem(data, validation_error.path))
  File "/usr/local/lib/python2.7/site-packages/voluptuous/humanize.py", line 11, in _nested_getitem
    data = data[item_index]
TypeError: list indices must be integers, not str

Chuck Short (zulcss) wrote :

Which version is this with?

Changed in voluptuous (Ubuntu):
status: New → Incomplete

0.9.3

Sent from my iPhone

> On Feb 21, 2017, at 10:16 AM, Chuck Short <email address hidden> wrote:
>
> Which version is this with?
>
> ** Changed in: voluptuous (Ubuntu)
> Status: New => Incomplete
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1665709
>
> Title:
> humanize_error function has type error
>
> Status in voluptuous package in Ubuntu:
> Incomplete
>
> Bug description:
> The following code will trigger a type error
>
> ######################################################
> import voluptuous
> import voluptuous.humanize
> import voluptuous.error
>
> allowed_value = [1, 2, 3]
>
> base = voluptuous.Schema({
> voluptuous.Required('age'): int,
> voluptuous.Required('children'): voluptuous.All(voluptuous.ExactSequence([
> {voluptuous.Required('first'): [voluptuous.Any(*allowed_value)]},
> {voluptuous.Required('second'): [voluptuous.Any(*allowed_value)]},
> ]),
> voluptuous.Length(min = 2, max=2))
> })
>
>
> test = {'age': 40, 'children': [{'first': 12, 'second': 8}]}
>
> def main():
> try:
> base(test)
> except voluptuous.error.Error as e:
> return voluptuous.humanize.humanize_error(test, e)
>
> main()
>
>
> Traceback (most recent call last):
> File "voluptuous_test.py", line 31, in <module>
> main()
> File "voluptuous_test.py", line 29, in main
> return voluptuous.humanize.humanize_error(test, e)
> File "/usr/local/lib/python2.7/site-packages/voluptuous/humanize.py", line 26, in humanize_error
> for sub_error in validation_error.errors
> File "/usr/local/lib/python2.7/site-packages/voluptuous/humanize.py", line 26, in <genexpr>
> for sub_error in validation_error.errors
> File "/usr/local/lib/python2.7/site-packages/voluptuous/humanize.py", line 29, in humanize_error
> offending_item_summary = repr(_nested_getitem(data, validation_error.path))
> File "/usr/local/lib/python2.7/site-packages/voluptuous/humanize.py", line 11, in _nested_getitem
> data = data[item_index]
> TypeError: list indices must be integers, not str
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/voluptuous/+bug/1665709/+subscriptions

Launchpad Janitor (janitor) wrote :

[Expired for voluptuous (Ubuntu) because there has been no activity for 60 days.]

Changed in voluptuous (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers