> On Oct. 15, 2014, 4:43 p.m., Matt Jordan wrote:
> > /asterisk/trunk/runtests.py, lines 82-83
> > <https://reviewboard.asterisk.org/r/4080/diff/1/?file=68347#file68347line82>
> >
> >     While the extra parantheses are probably needed, generally, this 
> > doesn't feel like the pythonic way to write this (although the original 
> > code isn't either). You shouldn't have to explicitly test for 0 or not 0.
> >     
> >     self.passed = ((p.returncode and self.test_config.expect_pass) or (not 
> > p.returncode and not self.test_config.expect_pass))
> >     
> >     This will evaluate self.passed to a boolean still.
> 
> jbigelow wrote:
>     test_runner.py returns 0 if passed and 1 if failed. So the above 
> suggestion would need to be like so:
>     
>     self.passed = ((not p.returncode and self.test_config.expect_pass) or 
> (p.returncode and not self.test_config.expect_pass))
>     
>     However it's still possible for self.passed to be an INT. Maybe I've gone 
> crazy but the below examples say I'm not.
>     
>     Example of not explicitly testing for 0 or not 0 as suggested:
>     >>> for returncode in (0, 1):
>     ...     for expect_pass in (True, False):
>     ...         ((not returncode and expect_pass) or (returncode and not 
> expect_pass))
>     ... 
>     True
>     0
>     False
>     True
>     
>     Example of explicitly testing for 0 and not 0 as posted for review:
>     >>> for returncode in (0, 1):
>     ...     for expect_pass in (True, False):
>     ...         ((returncode == 0 and expect_pass) or (returncode != 0 and 
> not expect_pass))
>     ... 
>     True
>     False
>     False
>     True
>     
>
> 
> Scott Griepentrog wrote:
>     I did not notice this exchange before my review.  Normally open issue 
> sections are not collapsed, but that wasn't the case?
>     
>     My testing of the current patch showed correct function.  After reviewing 
> this discussion, I would suggest sanitizing p.returncode first to simplify 
> the comparison thusly:
>     
>     >>> for returncode in (0,1):
>     ...     for expect_pass in (True, False):
>     ...         did_pass = (returncode == 0)
>     ...         print returncode, expect_pass, did_pass, did_pass == 
> expect_pass
>     ... 
>     0 True True True
>     0 False True False
>     1 True False False
>     1 False False True
>     
>     resulting in:
>     
>     did_pass = (p.returncode == 0)
>     self.passed = (did_pass == expect_pass)
>

Implemented Scott Griepentrog's suggestion.


- jbigelow


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/4080/#review13533
-----------------------------------------------------------


On Oct. 20, 2014, 11:38 a.m., jbigelow wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/4080/
> -----------------------------------------------------------
> 
> (Updated Oct. 20, 2014, 11:38 a.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Repository: testsuite
> 
> 
> Description
> -------
> 
> When the 'expected-result' (or 'expectedResult') YAML property for test 
> configuration is set to False and the test fails, the test should be marked 
> as passed. However it is marked as failed. This patch should fix the issue so 
> that tests are marked as passed in this scenario.
> 
> Additionally:
> * Check if p.returncode is not zero so self.passed is a boolean rather than 
> an int in some cases.
> * Added some print statements to make it clear why a test was marked as 
> passed or failed when the 'expected-result' YAML property is set to False.
> * Added text to the failure message so it's easily known when looking at the 
> results file that the test was expected to fail but passed and therefore 
> marked as failed.
> 
> 
> Diffs
> -----
> 
>   /asterisk/trunk/runtests.py 5726 
>   /asterisk/trunk/lib/python/asterisk/test_config.py 5726 
> 
> Diff: https://reviewboard.asterisk.org/r/4080/diff/
> 
> 
> Testing
> -------
> 
> Tested the various scenarios and they all seem to properly work as expected 
> now.
> 
> 
> Thanks,
> 
> jbigelow
> 
>

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to