from datetime import date from datetime import datetime as dt from datetime import time from PyQt5 import QtCore def test_schedule_tab(qapp, qtbot): main = qapp.main_window tab = main.scheduleTab # Work around # because already 'deleted' scheduletabs are still connected to the signal qapp.scheduler.schedule_changed.disconnect() qapp.scheduler.schedule_changed.connect(lambda *args: tab.draw_next_scheduled_backup()) # Test qtbot.mouseClick(tab.scheduleOffRadio, QtCore.Qt.LeftButton) assert tab.nextBackupDateTimeLabel.text() == 'None scheduled' tab.scheduleIntervalCount.setValue(5) qtbot.mouseClick(tab.scheduleIntervalRadio, QtCore.Qt.LeftButton) assert "None" not in tab.nextBackupDateTimeLabel.text() tab.scheduleFixedTime.setTime(QtCore.QTime(23, 59)) # Clicking currently broken for this button on github.com only # qtbot.mouseClick(tab.scheduleFixedRadio, QtCore.Qt.LeftButton) # Workaround for github tab.scheduleFixedRadio.setChecked(True) tab.scheduleFixedRadio.clicked.emit() next_backup = dt.combine(date.today(), time(23, 59)) assert tab.nextBackupDateTimeLabel.text() == next_backup.strftime('%Y-%m-%d %H:%M')