#!/usr/bin/env python3 from lfdata import LFDataCollection #import lfreporting class TestBase: def __init__(self): self.profiles = list() def pre_clean_up(self): if self.profiles: for profile in self.profiles: profile.precleanup() def clean_up(self): if self.profiles: for profile in self.profiles: profile.cleanup() def start(self): if self.profiles: for profile in self.profiles: profile.start() def stop(self): if self.profiles: for profile in self.profiles: profile.stop() def build(self): # - create station profile # - create 2 criteria [ex: not down, continually_receiving] object (for ex) # - station_profile.add_criteria([not_down, continually_receiving, etc_3]) # design - inversion of control if self.profiles: for profile in self.profiles: profile.build() def passes(self): if self.profiles: for profile in self.profiles: profile.check_passes() def run_duration(self, monitor_enabled= False): #here check if monitor is enabled or not, then run loop accordingly self.check_for_halt() if self.profiles: if monitor_enabled: for profile in self.profiles: profile.monitor_record() #check for halt in monitor record? for profile in self.profiles: profile.grade() if self.exit_on_fail: if self.fails(): self.exit_fail() self.check_for_quit() def report(self, enabled= False): #here check if monitor is enabled or not, then run loop accordingly with lfreporting pass def begin(self): self.pre_clean_up() self.build() self.start() self.run_duration() self.stop() self.report() self.clean_up()