Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   Re: Is there a more elegant way to handle determing fail status? (http://www.velocityreviews.com/forums/t956548-re-is-there-a-more-elegant-way-to-handle-determing-fail-status.html)

Oscar Benjamin 01-15-2013 11:56 PM

Re: Is there a more elegant way to handle determing fail status?
 
On 15 January 2013 23:24, J <dreadpiratejeff@gmail.com> wrote:
> Ok, so I have a diagnostic tool, written by someone else. That tool
> runs a series of small tests defined by the user and can simplified
> summary output that can be one of the following:
>
> FAILED_CRITICAL
> FAILED_HIGH
> FAILED_MEDIUM
> FAILED_LOW
> PASSED
>
> I also have a wrapper script I wrote to run these tests, summarize the
> results of all tests aggregated and then fail based on a particular
> fail level.
>
> The idea is that if I run 3 tests with the diagnostic tool and it
> tells me the following:
>
> testA: PASSED
> testB: FAILED_MEDIUM
> testC: PASSED
>
> AND I told the wrapper to only fail on HIGH or above, the wrapper will
> tell me that I had a medium failure, but the wrapper will still exit
> with a 0 (success)
>
> if I get the same results as above, but tell the wrapper to fail on
> LOW, then it will tell me I had that medium failure, but the wrapper
> will exit with a 1 (failure).
>
> The problem is that my exit determination looks like this:
>
> if fail_priority == fail_levels['FAILED_CRITICAL']:
> if critical_fails:
> return 1
> if fail_priority == fail_levels['FAILED_HIGH']:
> if critical_fails or high_fails:
> return 1
> if fail_priority == fail_levels['FAILED_MEDIUM']:
> if critical_fails or high_fails or medium_fails:
> return 1
> if fail_priority == fail_levels['FAILED_LOW']:
> if critical_fails or high_fails or medium_fails or low_fails:
> return 1
>
> return 0
>

[SNIP]
>
> The exit code determination above works, but it just feels inelegant.
> It feels like there's a better way of implementing that, but I can't
> come up with one that still honors the fail level properly (e.g. other
> solutions will fail on medium, but won't fail properly on medium OR
> higher).


How about the following?

FAILED_CRITICAL = 4
FAILED_HIGH = 3
FAILED_MEDIUM = 2
FAILED_LOW = 1
PASSED = 0

if fail_level:
print fail_message
if fail_level > fail_priority:
return 1


Oscar


All times are GMT. The time now is 01:32 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.