[openstack-dev] A proposal for code reduction

Doug Hellmann doug.hellmann at dreamhost.com
Wed May 21 15:49:32 UTC 2014


On Wed, May 21, 2014 at 7:20 AM, Abhijeet Jain
<abhijeet.jain at nectechnologies.in> wrote:
>
>
> Hi Openstack-developers,
>
> I am Abhijeet Jain. One of the contributor in OpenStack.
>
> I was just working on optimizing the codes in Neutron , Keystone, Cinder
> modules.
> Then, I came across with a very common scenario that I can see at many
> places.
> at many places, I saw that the users have written the code in such form :
>
> assertEqual(user1['id'], user2['id']);
> assertEqual(user1['name'], user2['name']);
> assertEqual(user1['status'], user2['status']);
> assertEqual(user1['xyz'], user2['xyz']);
>
>
> To optimize such redundancy, I created a help function like below :
>
> def _check(self, expected, actual, keys):
>     for key in keys:
>         assertEqual( expected[key], actual[key])
>
>
> So, everywhere we just need to call this function like this :
> _check(user1, user2, ['id', 'name', 'status', 'xyz'])
>
> So, this way lots of code can be reduced.
> but, currently i need to put that function in every test file , I want to
> use. There is no global space.
>
> My proposal is :
> How about putting this function in some utils like place, which can be
> accessed in every test function.
> but for that, I need your approval.
> Kindly, provide your valuable feedback on this.

How close is the function you provide to testtools' MatchesDict [1] matcher?

Doug

1. https://github.com/testing-cabal/testtools/blob/master/testtools/matchers/_dict.py#L168

>
>
>
> Thanks,
> Abhijeet Jain
>
> DISCLAIMER:
> -----------------------------------------------------------------------------------------------------------------------
> The contents of this e-mail and any attachment(s) are confidential and
> intended
> for the named recipient(s) only.
> It shall not attach any liability on the originator or NEC or its
> affiliates. Any views or opinions presented in
> this email are solely those of the author and may not necessarily reflect
> the
> opinions of NEC or its affiliates.
> Any form of reproduction, dissemination, copying, disclosure, modification,
> distribution and / or publication of
> this message without the prior written consent of the author of this e-mail
> is
> strictly prohibited. If you have
> received this email in error please delete it and notify the sender
> immediately. .
> -----------------------------------------------------------------------------------------------------------------------
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>



More information about the OpenStack-dev mailing list