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')
示例#3
0
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)