def setUp(self): with open(Config.test_context["reserveStateCSVFilePath"], "w") as f: f.write("2016-04-01 13:24:00,offundo,0") with open(Config.test_context["reserveStateLogCSVFilePath"], "w") as f: f.write("2016-04-01 13:24:00,offundo,0") self.rstate = ReserveState(Config.test_context)
class ReserveStateTest(unittest.TestCase): def setUp(self): with open(Config.test_context["reserveStateCSVFilePath"], "w") as f: f.write("2016-04-01 13:24:00,offundo,0") with open(Config.test_context["reserveStateLogCSVFilePath"], "w") as f: f.write("2016-04-01 13:24:00,offundo,0") self.rstate = ReserveState(Config.test_context) def tearDown(self): os.remove(Config.test_context["reserveStateCSVFilePath"]) os.remove(Config.test_context["reserveStateLogCSVFilePath"]) def test_initiate_and_getter(self): # test ReserveState initiation self.assertEqual(self.rstate.__repr__(), '<2016-04-01 13:24:00 offundo 0>') def test_makeSignalName(self): signal = self.rstate._makeSignalName() self.assertEqual(signal, 'offundo') self.rstate.onoff = "off" self.rstate.settime = 120 signal = self.rstate._makeSignalName() self.assertEqual(signal, 'off02') self.rstate.onoff = "on" self.rstate.settime = 180 signal = self.rstate._makeSignalName() self.assertEqual(signal, 'on03') self.rstate.onoff = "onundo" self.rstate.settime = 0 signal = self.rstate._makeSignalName() self.assertEqual(signal, 'onundo')
def reserve(): state = ReserveState(Config.context) offForm = ReserveOffTimeForm() onForm = ReserveOnTimeForm() undoForm = UndoReservationForm() if offForm.validate_on_submit(): # state書き換え state.change_state(offForm) # 赤外線送信 # stateを元に赤外線送信 if not state.sendSignalToAC(): flash('信号を送信できませんでした') else: offtext = "{h}時間後の切予約をしました".\ format(h=offForm.off_hour.data) flash(offtext) return redirect(url_for('reserve')) if onForm.validate_on_submit(): # state書き換え state.change_state(onForm) # 赤外線送信 # stateを元に赤外線送信 if not state.sendSignalToAC(): flash('信号を送信できませんでした') else: ontext = "{h}時間後の入予約をしました".\ format(h=onForm.on_hour.data) flash(ontext) return redirect(url_for('reserve')) if undoForm.validate_on_submit(): # state書き換え # 取り消し処理 state.change_state(undoForm) # 赤外線送信 # stateを元に赤外線送信 if not state.sendSignalToAC(): flash('信号を送信できませんでした') else: undotext = "予約を取り消しました" flash(undotext) return redirect(url_for('reserve')) timeout_text = state.makeTimeoutText() return render_template('reservation.html', timeout_text=timeout_text, offForm=offForm, onForm=onForm, undoForm=undoForm)