def test_Recovers_correct_date(self):
     actual = statemanager.parse_state_file("normal_mock.yaml").since
     expected = datetime.datetime(2013, 2, 28, 20, 29, 53, 696503)
     self.assertEqual(actual, expected, "Unexpected datetime")
 def test_Recovers_correct_message(self):
     actual = statemanager.parse_state_file("normal_mock.yaml").message
     expected = "No Message"
     self.assertEqual(actual, expected, "Unexpected message paramater")
 def test_Recovers_Alert_State(self):
     actual = statemanager.parse_state_file("action_mock.yaml")
     self.assertIsInstance(actual, states.ActionState, "Error Recovering Action State")
 def test_Recovers_Warning_State(self):
     actual = statemanager.parse_state_file("warning_mock.yaml")
     self.assertIsInstance(actual, states.WarningState, "Error Recovering Warning State")
 def test_Recovers_OK_State(self):
     actual = statemanager.parse_state_file("normal_mock.yaml")
     self.assertIsInstance(actual, states.OKState, "Error Recovering OK State")
 def test_RoundTrip(self):
     statemanager.write_state_file(self.test_file_name, self.okay_mock)
     actual = statemanager.parse_state_file(self.test_file_name)
     self.assertEqual(actual, self.okay_mock)
Пример #7
0
# Runs the program

import statemanager
import gpiomanager
import apimanager
import datetime
import piface.pfio as pfio_interface
import states
import sys
import os

pfio_interface.init()
gpio_mgr = gpiomanager.GPIOManager(pfio_interface)
gis_api = apimanager.GISAPIManager()

try:
    # Ensure enough space on the root device of the volume
    st = os.statvfs('/')
    free_space_mb = st.f_bavail * st.f_frsize / 1024 / 1024
    if free_space_mb < 128:
        raise Exception("Less than 128MB disk space free, raising system trouble state")
    
    current_state = statemanager.parse_state_file("state_file.yaml")
    current_state = current_state.next(gpio_mgr, gis_api)
except:
    current_state = states.TroubleState(datetime.datetime.now(), datetime.datetime.now(), 0, sys.exc_info()[0])
finally:
    current_state.set_outputs(gpio_mgr)
    statemanager.write_state_stdout(current_state)
    statemanager.write_state_file("state_file.yaml", current_state)