def test_saving_switch_saves_id(): l = LocationAvailability(LocationName='kitchen') id = 'myswitch' l.with_switch(HardwareId=id, Color='Red', Name='Test', Style='Circle') lm = LocationManager() lm.update_input_capabilities(l) loc = lm.get_location('kitchen') assert id in loc.input_capabilities.keys()
def test_verify_switch_with_press_returns_true(): rpi_mock.GPIO.setmode.return_value = None rpi_mock.GPIO.setup.return_value = None rpi_mock.GPIO.input.return_value = False pm = PersonManager() p = Person(Name='calvin') p.require_physical_confirmation = True pm.update_window_set(p) l = LocationAvailability(LocationName='kitchen') id = 12 l.with_switch(HardwareId=id, Color='Red', Name='Test', Style='Circle') lm = LocationManager() lm.update_input_capabilities(l) lv = LocationVerification(LocationName='kitchen', PersonName='calvin') done, count, timeout = lv.verify_person_at_location() print done, count, timeout assert done and count == 1 and timeout < 3
def test_window_set_with_muted_window_is_not_available(): now_dt = arrow.get('2014-01-01T09:09:00.000-05:00') tw = TimeWindow(ical=ical_event_night, CompareDateTime=now_dt) l = LocationAvailability(LocationName='kitchen') l.add_window(tw) tw_night = TimeWindow(ical=ical_event, CompareDateTime=now_dt, IsMuted=True) l.add_window(tw_night) assert not l.is_available(dt=now_dt)
def test_db_window_set_with_muted_window_is_not_available(): now_dt = arrow.get('2014-01-01T09:09:00.000-05:00') tw = TimeWindow(ical=ical_event, CompareDateTime=now_dt) l = LocationAvailability(LocationName='kitchen') l.add_window(tw) tw = TimeWindow(ical=ical_event, CompareDateTime=now_dt, IsMuted=True) l.add_window(tw) lm = LocationManager() lm.update_window_set(l) l = lm.get_location('kitchen') assert not l.is_available(dt=now_dt)
def test_updating_existing_switch_does_not_add_new_switch(): l = LocationAvailability(LocationName='kitchen') id = 'myswitch' l.with_switch(HardwareId=id, Color='Red', Name='Test', Style='Circle') assert id in l.input_capabilities.keys() and \ l.input_capabilities[id]['style'] == 'Circle' l.with_switch(HardwareId=id, Color='Red', Name='Test', Style='Square') assert len(l.input_capabilities.keys()) == 1 and \ l.input_capabilities[id]['style'] == 'Square'
def test_saving_window_set_saves_set(): now_dt = arrow.get('2014-01-01T09:09:00.000-05:00') tw = TimeWindow(ical=ical_event, CompareDateTime=now_dt) la = LocationAvailability(LocationName='kitchen') la.add_window(tw) tw = TimeWindow(IsMuted=True, ical=ical_event, CompareDateTime=now_dt) la.add_window(tw) lm = LocationManager() lm.update_window_set(la) loc = lm.get_location('kitchen') assert loc.time_windows.count() == 2
def test_creating_with_location_name_sets_name(): l = LocationAvailability(LocationName="test_name", Priority=100, ical=ical_event) assert l.location_name == "test_name"
def test_setting_local_button_style_sets_style(): l = LocationAvailability(LocationName='kitchen') id = 'myswitch' l.with_switch(HardwareId=id, Color='Red', Name='Test', Style='Circle') assert l.input_capabilities[id]['style'] == 'Circle'
def test_setting_local_button_sets_local_button(): l = LocationAvailability(LocationName='kitchen') l.with_switch(Color='Red', Name='Test', Style='Circle') assert len(l.input_capabilities.keys()) == 1
def test_can_add_muted_window(): l = LocationAvailability() tw = TimeWindow(ical=ical_event, IsMuted=True) l.add_window(tw) assert l.time_windows.set_list[0].is_muted
def test_time_window_defaults_to_unmuted(): l = LocationAvailability() tw = TimeWindow(ical=ical_event) l.add_window(tw) assert not l.time_windows.set_list[0].is_muted
def test_can_add_window(): l = LocationAvailability() tw = TimeWindow(ical=ical_event) l.add_window(tw) assert len(l.time_windows.set_list) == 1
def test_time_inside_window_is_available(): now_dt = arrow.get('2014-01-01T09:09:00.000-05:00') tw = TimeWindow(ical=ical_event, CompareDateTime=now_dt) l = LocationAvailability() l.add_window(tw) assert l.is_available(dt=now_dt)