[pytest-dev] extended asserts

Bruno Oliveira nicoddemus at gmail.com
Tue Jul 29 22:25:04 CEST 2014


Nice, be sure to keep the mailing list informed. :)

Cheers,


On Tue, Jul 29, 2014 at 5:17 PM, Anatoly Bubenkov <bubenkoff at gmail.com>
wrote:

> Yes I'll do it as a separate plugin first
> Then we can think about including it in the core
> On Jul 29, 2014 9:46 PM, "Bruno Oliveira" <nicoddemus at gmail.com> wrote:
>
>> Hi,
>>
>> Perhaps this could a plugin (pytest-datadiff)? I know you can customize
>> assertion messages for other types (see
>> http://pytest.org/latest/assert.html#defining-your-own-assertion-comparison),
>> but I don't know how that plays with assertions already built in pytest.
>>
>> Cheers,
>>
>>
>> On Tue, Jul 29, 2014 at 5:24 AM, Anatoly Bubenkov <bubenkoff at gmail.com>
>> wrote:
>>
>>> what do you think about extending the existing assert representation
>>> with this
>>> https://pypi.python.org/pypi/datadiff
>>> would be nice if we could extend datadiff with what pytest does for
>>> string diff
>>> and then just use datadiff for all assertions
>>> because for now, it's not too useful to see a comparison of 2 dicts in
>>> the pytest
>>> it's not readable
>>> especially if 2 dicts are big
>>> and nowadays, json so dicts are everywhere
>>> datadiff is cool at showing the diff between 2 dicts
>>> the reason why im asking without the PR is the politics about the
>>> dependencies
>>> as i know you're not so positive about adding them
>>> also this standalone mode is a bit tricky in that case, i guess
>>> example:
>>>
>>> def test_ticket_filter_on_order_uid__in(app, first_ticket,
>>> second_ticket, second_basket_ticket, order, second_order):
>>> """Test if the right result is returned when filtering on basket."""
>>> ticket_filter = pta.ticket.filter(api_key=app.uid,
>>> order_uid__in=[order['uid']]).content
>>> > assert ticket_filter == [first_ticket, second_ticket]
>>> E assert [{'code': '91...dulum'}, ...}] == [{'basket_uid'... 'EUR'},
>>> ...}]
>>> E At index 0 diff: {'code': '911338060856', 'subtitle': {'en':
>>> u'Subtitle1 Kaleidoscope'}, 'uid': u'37bc3c15e66a45e9bf3b52233fcdff02',
>>> 'order_uid': u'08dec1bd7ec249109729de448ffcc571', 'price': {'currency':
>>> 'EUR', 'amount': '1.20'}, 'fees': [{'price': {'currency': 'EUR', 'amount':
>>> '2.00'}, 'type': 'service costs'}], 'product_uid':
>>> u'32c2a6f98f0642b9843a8dcce6dead56', 'name': {'en': u'Ticket1 \u2603
>>> Weapon'}} != {'subtitle': {'en': u'Subtitle1 Kaleidoscope'}, 'uid':
>>> u'37bc3c15e66a45e9bf3b52233fcdff02', 'price': {'currency': 'EUR', 'amount':
>>> '1.20'}, 'fees': [{'price': {'currency': 'EUR', 'amount': '2.00'}, 'type':
>>> 'service costs'}], 'basket_uid': u'871e829da04e4cd9a45d244f55824c83',
>>> 'product_uid': u'32c2a6f98f0642b9843a8dcce6dead56', 'name': {'en':
>>> u'Ticket1 \u2603 Weapon'}}
>>> just unreadable
>>>
>>>
>>> --
>>> Anatoly Bubenkov
>>>
>>> _______________________________________________
>>> Pytest-dev mailing list
>>> Pytest-dev at python.org
>>> https://mail.python.org/mailman/listinfo/pytest-dev
>>>
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pytest-dev/attachments/20140729/6ffd422a/attachment.html>


More information about the Pytest-dev mailing list