def test_bounding_box_calculations(view_fixture): """A view created before and after the canvas is populated should contain the same data. """ view_fixture.view.realize() view_fixture.box.matrix = (1.0, 0.0, 0.0, 1, 10, 10) line = Line() line.fuzziness = 1 line.handles()[1].pos = (30, 30) line.matrix.translate(30, 60) view_fixture.canvas.add(line) window2 = Gtk.Window.new(Gtk.WindowType.TOPLEVEL) view2 = GtkView(canvas=view_fixture.canvas) window2.add(view2) window2.show_all() # Process pending (expose) events, which cause the canvas to be drawn. while Gtk.events_pending(): Gtk.main_iteration() try: assert view2.get_item_bounding_box(view_fixture.box) assert view_fixture.view.get_item_bounding_box(view_fixture.box) assert view_fixture.view.get_item_bounding_box( view_fixture.box) == view2.get_item_bounding_box( view_fixture.box), ("%s != %s" % ( view_fixture.view.get_item_bounding_box(view_fixture.box), view2.get_item_bounding_box(view_fixture.box), )) assert view_fixture.view.get_item_bounding_box( line) == view2.get_item_bounding_box(line), ("%s != %s" % ( view_fixture.view.get_item_bounding_box(line), view2.get_item_bounding_box(line), )) finally: view_fixture.window.destroy() window2.destroy()