Thursday, June 6, 2013

Re: problem with logical and

On 7/06/2013 1:31pm, Mike Dewhirst wrote:
> I can't work this one out. I have a blind spot. Any help appreciated.

Accidentally fixed this trying workarounds. Still not sure what was
happening but I suspect I don't fully understand None in the boolean
context. Anyway, I'm being more explicit now - with some success!

Sorry to bother you ...

Mike

>
> My unit tests indicate a problem with the following method (is_current)
> on a model. Because I couldn't figure it out I instrumented with a whole
> mess of print statements. The problem occurs on the line with
> self.quality_tag. Note the print statement before and after ...
>
> def is_current(self):
> current = self.effective and self.effective <= when()
> print('\n%s %s - when = %s' %(current, self.effective, when()))
>
> print('\n%s - 1 quality_tag = %s' % (current, self.quality_tag))
> current = current and (self.quality_tag is None)
> print('\n%s - 2 quality_tag = %s' % (current, self.quality_tag))
>
> current = current and not self.withdrawn
> print('\n%s - withdrawn = %s' %(current, self.withdrawn))
> return current
>
> Here is the unit test output ... which seems to indicate there is a bug
> in (my) boolean logic where (self.quality_tag is None) returns False
> instead of True when self.quality_tag really *is* None
>
> True 2013-06-07 03:18:14.418000+00:00 - when = 2013-06-07
> 03:18:15.231000+00:00
>
> True - 1 quality_tag = None
>
> False - 2 quality_tag = None
>
> False - withdrawn = False
> F
> ======================================================================
> FAIL: test_attach_current (items.tests.test_utils.TestAttach)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "C:\users\miked\py\xxx_project\xxx\items\tests\test_utils.py",
> line 272, in test_attach_current
> self.assertEqual(obj.is_current(), True)
> AssertionError: False != True
>
> ----------------------------------------------------------------------
>
> Windows XP
> Python 2.7
> Django 1.5
>
> Thanks
>
> Mike
>

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate