Beispiel #1
0
def test_debug_exporter_on_checkbox_state_changed_toggle_content(
        checkbox_state, expected_content):
    de = DebugExporter(None)
    de.log_loader.content = "unfiltered"
    de.log_loader.filtered_content = "filtered"
    de.on_checkbox_state_changed(checkbox_state)
    assert de.plaintextedit.toPlainText() == expected_content
Beispiel #2
0
 def __init__(self, core):
     self.core = core
     self.welcome_dialog = WelcomeDialog(self)
     self.main_window = MainWindow(self)
     self.preferences_window = PreferencesWindow()
     self.systray = SystemTrayIcon(self)
     self.debug_exporter = DebugExporter(core)
Beispiel #3
0
def test_debug_exporter_load_return_early_thread_running(core, qtbot):
    de = DebugExporter(core)
    de.log_loader_thread = Mock()
    de.log_loader_thread.isRunning(return_value=True)
    with qtbot.wait_signal(de.log_loader.done, raising=False, timeout=250):
        de.load()
    assert de.log_loader_thread.start.call_count == 0
Beispiel #4
0
def test_debug_exporter_maybe_enable_buttons(
        scrollbar_value, scrolbar_maximum, is_enabled):
    de = DebugExporter(None)
    fake_scrollbar = Mock()
    fake_scrollbar.maximum = Mock(return_value=scrolbar_maximum)
    de.scrollbar = fake_scrollbar
    de.maybe_enable_buttons(scrollbar_value)
    assert de.copy_button.isEnabled() == is_enabled
Beispiel #5
0
def test_debug_exporter_on_checkbox_state_changed_keep_scrollbar_position():
    de = DebugExporter(None)
    fake_scrollbar = Mock()
    fake_scrollbar.value = Mock(return_value=99)
    fake_setValue = Mock()
    fake_scrollbar.setValue = fake_setValue
    de.scrollbar = fake_scrollbar
    de.on_checkbox_state_changed(0)
    assert de.scrollbar.setValue.call_args[0][0] == 99
Beispiel #6
0
def test_debug_exporter_copy_to_clipboard(monkeypatch):
    de = DebugExporter(None)
    de.plaintextedit.setPlainText("TESTING123")
    fake_set_clipboard_text = Mock()
    monkeypatch.setattr("gridsync.gui.debug.set_clipboard_text",
                        fake_set_clipboard_text)
    monkeypatch.setattr("gridsync.gui.debug.get_clipboard_modes", lambda: [1])
    de.copy_to_clipboard()
    assert fake_set_clipboard_text.call_args[0] == ("TESTING123", 1)
Beispiel #7
0
def test_debug_exporter_export_to_file_no_dest_return(monkeypatch, tmpdir):
    de = DebugExporter(None)
    de.close = Mock()
    fake_get_save_file_name = Mock(return_value=(None, None))
    monkeypatch.setattr(
        "gridsync.gui.debug.QFileDialog.getSaveFileName",
        fake_get_save_file_name,
    )
    de.export_to_file()
    assert de.close.call_count == 0
Beispiel #8
0
def test_debug_exporter_export_to_file_success(monkeypatch, tmpdir):
    de = DebugExporter(None)
    expected_content = "EXPECTED_CONTENT"
    de.plaintextedit.setPlainText(expected_content)
    dest = str(tmpdir.join("log.txt"))
    fake_get_save_file_name = Mock(return_value=(dest, None))
    monkeypatch.setattr(
        "gridsync.gui.debug.QFileDialog.getSaveFileName",
        fake_get_save_file_name,
    )
    de.export_to_file()
    with open(dest) as f:
        assert f.read() == expected_content
Beispiel #9
0
def test_debug_exporter_export_to_file_failure(monkeypatch, tmpdir):
    de = DebugExporter(None)
    de.plaintextedit.setPlainText("TEST_CONTENT")
    dest = str(tmpdir.join("log.txt"))
    fake_getSaveFileName = Mock(return_value=(dest, None))
    monkeypatch.setattr("gridsync.gui.debug.QFileDialog.getSaveFileName",
                        fake_getSaveFileName)
    error_message = "Something Bad Happened"
    fake_to_plain_text = Mock(side_effect=OSError(error_message))
    monkeypatch.setattr("gridsync.gui.debug.QPlainTextEdit.toPlainText",
                        fake_to_plain_text)
    fake_error = Mock()
    monkeypatch.setattr("gridsync.gui.debug.error", fake_error)
    de.export_to_file()
    assert fake_error.call_args[0][2] == error_message
Beispiel #10
0
class Gui():
    def __init__(self, core):
        self.core = core
        self.welcome_dialog = WelcomeDialog(self)
        self.main_window = MainWindow(self)
        self.preferences_window = PreferencesWindow()
        self.systray = SystemTrayIcon(self)
        self.debug_exporter = DebugExporter(core)

    def show_message(self, title, message, duration=5000):
        notify(self.systray, title, message, duration)

    def show_welcome_dialog(self):
        self.welcome_dialog.show()
        self.welcome_dialog.raise_()

    def show_main_window(self):
        self.main_window.show()
        self.main_window.raise_()

    def show_preferences_window(self):
        self.preferences_window.show()
        self.preferences_window.raise_()

    def show_systray(self):
        if self.systray.isSystemTrayAvailable():
            self.systray.show()
        else:
            self.show_main_window()

    def show(self):
        self.systray.show()
        if self.main_window.gateways:
            self.show_main_window()
        else:
            self.show_welcome_dialog()

    def hide(self):
        self.systray.hide()
        self.main_window.hide()
        self.preferences_window.hide()

    def toggle(self):
        if self.main_window.isVisible():
            self.main_window.hide()
        else:
            self.show_main_window()

    def populate(self, gateways):
        self.main_window.populate(gateways)

    def show_debug_exporter(self):
        self.debug_exporter.show()
        self.debug_exporter.raise_()
        self.debug_exporter.load()
Beispiel #11
0
def test_debug_exporter_on_info_button_clicked(monkeypatch):
    de = DebugExporter(None)
    fake_msgbox = Mock()
    monkeypatch.setattr("gridsync.gui.debug.QMessageBox", fake_msgbox)
    de.on_filter_info_button_clicked()
    assert fake_msgbox.called
Beispiel #12
0
def test_debug_exporter_load_warning_text_in_filtered_content(core, qtbot):
    de = DebugExporter(core)
    de.checkbox.setCheckState(Qt.Checked)  # Filter on
    with qtbot.wait_signal(de.log_loader.done):
        de.load()
    assert warning_text in de.plaintextedit.toPlainText()
Beispiel #13
0
def test_debug_exporter_load_content(core, qtbot):
    de = DebugExporter(core)
    de.checkbox.setCheckState(Qt.Unchecked)  # Filter off
    with qtbot.wait_signal(de.log_loader.done):
        de.load()
    assert core.executable in de.plaintextedit.toPlainText()
Beispiel #14
0
def test_debug_exporter_maybe_enable_buttons_on_resizeEvent():
    de = DebugExporter(None)
    de.maybe_enable_buttons = Mock()
    de.resizeEvent(None)
    assert de.maybe_enable_buttons.call_args[0][0] == de.scrollbar.value()