1# Copyright (c) 2017 Mark D. Hill and David A. Wood 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions are 6# met: redistributions of source code must retain the above copyright 7# notice, this list of conditions and the following disclaimer; 8# redistributions in binary form must reproduce the above copyright 9# notice, this list of conditions and the following disclaimer in the 10# documentation and/or other materials provided with the distribution; 11# neither the name of the copyright holders nor the names of its 12# contributors may be used to endorse or promote products derived from 13# this software without specific prior written permission. 14# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 15# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 16# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 17# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 19# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24# 25# Authors: Sean Wilson 26 27class Result: 28 enums = ''' 29 NotRun 30 Skipped 31 Passed 32 Failed 33 Errored 34 '''.split() 35 for idx, enum in enumerate(enums): 36 locals()[enum] = idx 37 38 @classmethod 39 def name(cls, enum): 40 return cls.enums[enum] 41 42 def __init__(self, value, reason=None): 43 self.value = value 44 self.reason = reason 45 46 def __str__(self): 47 return self.name(self.value) 48 49class Status: 50 enums = ''' 51 Unscheduled 52 Building 53 Running 54 TearingDown 55 Complete 56 Avoided 57 '''.split() 58 for idx, enum in enumerate(enums): 59 locals()[enum] = idx 60 61 @classmethod 62 def name(cls, enum): 63 return cls.enums[enum] 64