#!/usr/bin/python import re from . import common from . import testchooser from . import testproperties from . import testresults from . import testviewer from gi.repository import GObject from gi.repository import Gtk SizeGroup = Gtk.SizeGroup.new(Gtk.SizeGroupMode.VERTICAL) class TestChooser(Gtk.Box): def __init__(self): Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL) self.stack = testchooser.Stack() self.switcher = Gtk.StackSwitcher(stack=self.stack) SizeGroup.add_widget(self.switcher) self.append(self.switcher) self.append(self.stack) self.stack.connect("test-selected", self.on_test_selected) def on_test_selected(self, stack, path): self.emit("test-selected", path) @GObject.Signal(arg_types=(testchooser.Path,)) def test_selected(self, path): pass class TestViewer(Gtk.Box): def __init__(self): Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL) self.stack = testproperties.Stack() self.switcher = Gtk.StackSwitcher(stack=self.stack, halign=Gtk.Align.CENTER) self.viewer = testviewer.Viewer() self.search = testviewer.SearchEntry(self.viewer.get_filter()) self.append(self.switcher) self.append(self.stack) self.append(self.viewer) self.append(self.search) SizeGroup.add_widget(self.switcher) self.stack.connect("notrun-selected", self.notrun_selected) def set_test_result(self, file): current = self.stack.clear() self.viewer.clear() if file and file.is_file(): results = testresults.TestResults(file.path) self.stack.show_properties(results, current) self.viewer.show_results(results) def notrun_selected(self, stack, item): self.search.set_text(re.escape(item.message))