"if not <variable>" instead of "if <variable> is None"
Bug #814620 reported by
Leonardo Santagada @ Proge.com.br
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Odoo Server (MOVED TO GITHUB) |
Confirmed
|
Wishlist
|
OpenERP's Framework R&D |
Bug Description
In a lot of places (I greped "if +not +\w+:" and found tons of these) the function definition says <variable>=None and then check if the variable is false then creates an empty var. In python empty vars are usually false, so if someones passes an empty var the function will create a new one, both creating more objects than it needs to and making it way harder to test openerp code. Changing it to if <variable> is None is both more semantically correct and will make the problem go away.
Changed in openobject-server: | |
assignee: | nobody → OpenERP's Framework R&D (openerp-dev-framework) |
importance: | Undecided → Wishlist |
status: | New → Confirmed |
To post a comment you must log in.
On Friday 22 July 2011, you wrote:
> Public bug reported:
>
> In a lot of places (I greped "if +not +\w+:" and found tons of these)
> the function definition says <variable>=None and then check if the
> variable is false then creates an empty var. In python empty vars are
> usually false, so if someones passes an empty var the function will
> create a new one, both creating more objects than it needs to and making
> it way harder to test openerp code. Changing it to if <variable> is None
> is both more semantically correct and will make the problem go away.
>
Well neither "not var" nor "var is None" can be a generally good solution for
all cases.
Sometimes we only want to test against the 'None' value, explicitly. Other
times we want to catch all negative values (such as False, [], {} and '').
I appreciate that there /might/ be places where the current "not var" test is
not the most politically correct.
But we can't just change all the instances blindly.
If you can indicate specific cases where the current test might be wrong, you
are welcome to help improve it.