def test_check_release(qtbot, mocker, mainwindow): retry_get = mocker.patch("mozregui.check_release.retry_get") retry_get.return_value = mocker.Mock( json=lambda *a: { 'tag_name': '0.0', 'html_url': 'url' } ) status_bar = mainwindow.ui.status_bar assert status_bar.findChild(QLabel, '') is None checker = CheckRelease(mainwindow) with qtbot.waitSignal(checker.thread.finished, raising=True): checker.check() lbl = status_bar.findChild(QLabel, '') assert lbl assert "There is a new release available!" in str(lbl.text()) assert '0.0' in str(lbl.text()) # simulate click on the link open_url = mocker.patch("mozregui.check_release.QDesktopServices.openUrl") checker.label_clicked("http://url") open_url.assert_called_once_with(QUrl("http://url")) assert not lbl.isVisible()
def main(): logger = StructuredLogger('mozregression-gui') set_default_logger(logger) # Create a Qt application log_model = LogModel() logger.add_handler(log_model) argv = [sys.argv[0].replace("main.py", "mozregression")] + sys.argv[1:] app = QApplication(argv) crash_reporter = CrashReporter(app) crash_reporter.install() app.setOrganizationName('mozilla') app.setOrganizationDomain('mozilla.org') app.setApplicationName('mozregression-gui') set_default_prefs() # Create the main window and show it win = MainWindow() app.aboutToQuit.connect(win.bisect_runner.stop) app.aboutToQuit.connect(win.single_runner.stop) app.aboutToQuit.connect(win.clear) release_checker = CheckRelease(win) release_checker.check() log_model.log.connect(win.ui.log_view.on_log_received) win.show() # Enter Qt application main loop sys.exit(app.exec_())
def test_check_release_no_update(qtbot, mocker, mainwindow): retry_get = mocker.patch("mozregui.check_release.retry_get") retry_get.return_value = mocker.Mock(json=lambda *a: { "tag_name": __version__, "html_url": "url" }) status_bar = mainwindow.ui.status_bar assert status_bar.findChild(QLabel, "") is None checker = CheckRelease(mainwindow) with qtbot.waitSignal(checker.thread.finished, raising=True): checker.check() assert status_bar.findChild(QLabel, "") is None
def test_check_release_no_update(qtbot, mocker, mainwindow): retry_get = mocker.patch("mozregui.check_release.retry_get") retry_get.return_value = mocker.Mock( json=lambda *a: { 'tag_name': 'gui-' + __version__, 'html_url': 'url' } ) status_bar = mainwindow.ui.status_bar assert status_bar.findChild(QLabel, '') is None checker = CheckRelease(mainwindow) with qtbot.waitSignal(checker.thread.finished, raising=True): checker.check() assert status_bar.findChild(QLabel, '') is None
def test_check_release(qtbot, mocker, mainwindow): retry_get = mocker.patch("mozregui.check_release.retry_get") retry_get.return_value = mocker.Mock(json=lambda *a: { "tag_name": "0.0", "html_url": "url" }) status_bar = mainwindow.ui.status_bar assert status_bar.findChild(QLabel, "") is None checker = CheckRelease(mainwindow) with qtbot.waitSignal(checker.thread.finished, raising=True): checker.check() lbl = status_bar.findChild(QLabel, "") assert lbl assert "There is a new release available!" in str(lbl.text()) assert "0.0" in str(lbl.text()) # simulate click on the link open_url = mocker.patch("mozregui.check_release.QDesktopServices.openUrl") checker.label_clicked("http://url") open_url.assert_called_once_with(QUrl("http://url")) assert not lbl.isVisible()