Comment 2 for bug 1665709

Revision history for this message
lei lu (leidalianmao) wrote : Re: [Bug 1665709] Re: humanize_error function has type error

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