def test_gnutr_combobox_empty(self): cb = gnutr_widgets.GnutrComboBox() assert isinstance( cb, gtk.ComboBox), 'constructor did not create a gtk.ComboBox' model = cb.get_model() assert isinstance( model, gtk.TreeModel), 'combobox model is not a gtk.TreeModel' assert model.get_iter_first() == None, 'combobox model is not empty'
def test_gnutr_combobox_set_active_text(self): cb = gnutr_widgets.GnutrComboBox(self.fruits) testfruit = 'banana' res = cb.set_active_text(testfruit) assert res, 'failed to set active text' assert cb.get_active_text( ) == testfruit, 'failed to set the active text' res = cb.set_active_text('steak') assert not res, 'set_active_text successful on invalid input'
def create_pane(self): self.pane = gtk.Table(3, 5, False) self.pane.set_border_width(5) self.pane.set_row_spacings(5) self.pane.set_col_spacings(5) label1 = gtk.Label('Selected food') label1.set_alignment(1, 0.5) self.pane.attach(label1, 0, 1, 0, 1, gtk.FILL,0, 0, 0) self.food_entry = gtk.Entry() self.food_entry.set_property('editable', False) self.food_entry.set_property('can-focus', False) self.pane.attach(self.food_entry, 1, 5, 0, 1, gtk.EXPAND | gtk.FILL, 0, 0, 0) label2 = gtk.Label('') label2.set_text_with_mnemonic('_Amount') label2.set_alignment(1, 0.5) self.pane.attach(label2, 0, 1, 1, 2, gtk.FILL, 0, 0, 0) self.amount_entry = gtk.Entry() self.pane.attach(self.amount_entry, 1, 2, 1, 2, gtk.EXPAND | gtk.FILL, 0, 0, 0) label3 = gtk.Label(' ') label3.set_alignment(1, 0.5) self.pane.attach(label3, 2, 3, 1, 2, gtk.FILL, 0, 0, 0) label4 = gtk.Label('') label4.set_text_with_mnemonic('_Measure') label4.set_alignment(1, 0.5) self.pane.attach(label4, 3, 4, 1, 2, gtk.FILL, 0, 0, 0) self.msre_combo = gnutr_widgets.GnutrComboBox() self.pane.attach(self.msre_combo, 4, 5, 1, 2, gtk.EXPAND | gtk.FILL, 0, 0, 0) scrolledwindow1 = gtk.ScrolledWindow() scrolledwindow1.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) self.pane.attach(scrolledwindow1, 0, 5, 2, 3, gtk.EXPAND | gtk.FILL, gtk.EXPAND | gtk.FILL, 0, 0) viewport1 = gtk.Viewport() viewport1.set_shadow_type(gtk.SHADOW_IN) scrolledwindow1.add(viewport1) self.notebook_container = gtk.HBox(False, 0) viewport1.add(self.notebook_container) self.pane.show_all()
def test_gnutr_combobox_rows(self): cb = gnutr_widgets.GnutrComboBox(self.fruits) model = cb.get_model() it = model.get_iter_first() assert it != None, 'combobox model is empty' assert model.get_value( it, 0) == 'apple', 'combobox first item is not correct' it = model.iter_next(it) assert it != None, 'combobox model has too few rows' assert model.get_value( it, 0) == 'banana', 'combobox second item is not correct' it = model.iter_next(it) it = model.iter_next(it) assert it == None, 'combobox model has too many rows'
def test_gnutr_comboboxentry_set_rows(self): cb = gnutr_widgets.GnutrComboBox() cb.set_rows(self.fruits) assert cb.get_active() == -1, 'no row must be selected' model = cb.get_model() it = model.get_iter_first() assert it != None, 'combobox model is empty' assert model.get_value( it, 0) == 'apple', 'combobox first item is not correct' it = model.iter_next(it) assert it != None, 'combobox model has too few rows' assert model.get_value( it, 0) == 'banana', 'combobox second item is not correct' it = model.iter_next(it) it = model.iter_next(it) it = model.iter_next(it) assert it == None, 'combobox model has too many rows'
def __init__(self): self.dialog = gtk.Dialog( title='Food Edit', flags=gtk.DIALOG_MODAL, buttons=(gtk.STOCK_HELP, gtk.RESPONSE_HELP, gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) self.dialog.set_resizable(False) self.dialog.set_default_response(gtk.RESPONSE_OK) table = gtk.Table(4, 2, False) table.set_border_width(5) table.set_row_spacings(5) table.set_col_spacings(5) self.dialog.vbox.pack_start(table, True, True, 0) label1 = gtk.Label('Selected food') label1.set_alignment(1, 0.5) table.attach(label1, 0, 1, 0, 1, gtk.FILL, 0, 0, 0) self.food_entry = gtk.Entry() self.food_entry.set_property('editable', False) self.food_entry.set_property('can-focus', False) table.attach(self.food_entry, 1, 4, 0, 1, gtk.FILL | gtk.EXPAND, 0, 0, 0) label2 = gtk.Label('') label2.set_text_with_mnemonic('_Amount') label2.set_alignment(1, 0.5) table.attach(label2, 0, 1, 1, 2, gtk.FILL, 0, 0, 0) self.amount_entry = gtk.Entry() self.amount_entry.set_activates_default(True) label2.set_mnemonic_widget(self.amount_entry) table.attach(self.amount_entry, 1, 2, 1, 2, gtk.FILL | gtk.EXPAND, 0, 0, 0) label3 = gtk.Label('') label3.set_text_with_mnemonic('_Measure') label3.set_alignment(1, 0.5) table.attach(label3, 2, 3, 1, 2, gtk.FILL, 0, 0, 0) self.combo = gnutr_widgets.GnutrComboBox() label3.set_mnemonic_widget(self.combo) table.attach(self.combo, 3, 4, 1, 2, gtk.FILL | gtk.EXPAND, 0, 0, 0)
def __init__(self): self.dialog = gtk.Dialog( title='Recipe Search', flags=gtk.DIALOG_MODAL, buttons=(gtk.STOCK_HELP, gtk.RESPONSE_HELP, gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) self.dialog.set_resizable(False) self.dialog.set_default_response(gtk.RESPONSE_OK) self.container = gtk.HBox(False, 0) self.dialog.vbox.pack_start(self.container, True, True, 0) vbox1 = gtk.VBox(False, 0) self.container.pack_start(vbox1, True, True, 0) hbox2 = gtk.HBox(True, 0) hbox2.set_border_width(5) vbox1.pack_start(hbox2, True, False, 0) label1 = gtk.Label('Recipe Category') label1.set_alignment(1.0, 0.5) label1.set_padding(10, 0) hbox2.pack_start(label1, False, True, 0) self.category_combo = gnutr_widgets.GnutrComboBox() hbox2.pack_start(self.category_combo, True, True, 0) frame1 = gtk.Frame('Text in Recipe Name to Match') frame1.set_border_width(5) vbox1.pack_start(frame1, True, True, 0) hbox3 = gtk.HBox(True, 0) hbox3.set_border_width(5) frame1.add(hbox3) label2 = gtk.Label('Regular Expression (.* to list all)') label2.set_alignment(1.0, 0.5) label2.set_padding(10, 0) hbox3.pack_start(label2, False, True, 0) self.reg_expr_entry = gtk.Entry() self.reg_expr_entry.set_activates_default(True) hbox3.pack_start(self.reg_expr_entry, True, True, 0)
def create_pane( self): self.pane = gtk.Table(2, 5, False) self.pane.set_border_width( 5) self.pane.set_row_spacings( 5) self.pane.set_col_spacings( 5) label1 = gtk.Label( '') label1.set_text_with_mnemonic( '_Recipe name') label1.set_alignment( 1.0, 0.5) self.pane.attach( label1, 0, 1, 0, 1, gtk.FILL, 0, 0, 0) self.recipe_entry = gtk.Entry() label1.set_mnemonic_widget( self.recipe_entry) self.pane.attach( self.recipe_entry, 1, 5, 0, 1, gtk.FILL | gtk.EXPAND, 0, 0, 0) label2 = gtk.Label( '') label2.set_text_with_mnemonic( '_Category') label2.set_alignment( 1.0, 0.5) self.pane.attach( label2, 0, 1, 1, 2, gtk.FILL, 0, 0, 0) self.category_combo = gnutr_widgets.GnutrComboBox() label2.set_mnemonic_widget( self.category_combo) self.pane.attach( self.category_combo, 1, 2, 1, 2, gtk.FILL | gtk.EXPAND, 0, 0, 0) label3 = gtk.Label(" ") self.pane.attach( label3, 2, 3, 1, 2, gtk.FILL, 0, 0, 0) label4 = gtk.Label( '') label4.set_text_with_mnemonic( '_Num. servings') label4.set_alignment( 1, 0.5) self.pane.attach( label4, 3, 4, 1, 2, gtk.FILL, 0, 0, 0) self.num_serv_entry = gtk.Entry() label4.set_mnemonic_widget( self.num_serv_entry) self.pane.attach( self.num_serv_entry, 4, 5, 1, 2, gtk.FILL | gtk.EXPAND, 0, 0, 0) self.vpaned = gtk.VPaned() self.pane.attach( self.vpaned, 0, 5, 2, 3, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 0, 0) vbox1 = gtk.VBox( False, 0) self.vpaned.pack1( vbox1, True, True) self.vbox2 = gtk.VBox( False, 0) self.vpaned.pack2( self.vbox2, True, True) frame1 = gtk.Frame() frame1.set_shadow_type( gtk.SHADOW_IN) vbox1.pack_start( frame1, False, False, 0) button1 = gtk.Button( label="Ingredients") frame1.add( button1) frame2 = gtk.Frame() frame2.set_shadow_type( gtk.SHADOW_IN) self.vbox2.pack_start( frame2, False, False, 0) button2 = gtk.Button(label='Recipe Instructions') frame2.add( button2) scrolledwindow1 = gtk.ScrolledWindow() scrolledwindow1.set_policy( gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS) vbox1.pack_start( scrolledwindow1, True, True, 0) self.treemodel = gtk.ListStore( gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_OBJECT) self.treeview = gtk.TreeView( self.treemodel) self.treeview.set_rules_hint( True) self.selection = self.treeview.get_selection() renderer = gtk.CellRendererText() column = gtk.TreeViewColumn( 'Amount', renderer, text=0) self.treeview.append_column( column) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn( 'Measure', renderer, text=1) self.treeview.append_column( column) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn( 'Food', renderer, text=2) self.treeview.append_column( column) scrolledwindow1.add( self.treeview) self.scrolledwindow2 = gtk.ScrolledWindow() self.scrolledwindow2.set_policy( gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.vbox2.pack_start( self.scrolledwindow2, True, True, 0) self.text_box = gtk.TextView() self.text_buffer = gtk.TextBuffer( None) self.text_box.set_buffer( self.text_buffer) self.text_box.set_editable( True) self.text_box.set_cursor_visible( True) self.scrolledwindow2.add( self.text_box) self.pane.show_all()
def __init__(self): self.dialog = gtk.Dialog( title='Food Search', flags=gtk.DIALOG_MODAL, buttons=(gtk.STOCK_HELP, gtk.RESPONSE_HELP, gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) self.dialog.set_default_response(gtk.RESPONSE_OK) self.notebook = gtk.Notebook() self.dialog.vbox.pack_start(self.notebook, True, True, 0) self.notebook.set_border_width(5) self.container_txt = gtk.VBox(False, 0) self.notebook.append_page(self.container_txt, gtk.Label('Name Search')) self.box_txt = gtk.VBox(False, 5) self.container_txt.pack_start(self.box_txt, False, False, 0) self.box_txt.set_border_width(5) hbox13 = gtk.HBox(True, 0) self.box_txt.pack_start(hbox13, True, True, 0) label37 = gtk.Label('') label37.set_text_with_mnemonic('Food _group') hbox13.pack_start(label37, True, True, 5) label37.set_alignment(1, 0.5) self.txt_fg_combo = gnutr_widgets.GnutrComboBox() label37.set_mnemonic_widget(self.txt_fg_combo) hbox13.pack_start(self.txt_fg_combo, True, True, 0) hbox14 = gtk.HBox(True, 0) self.box_txt.pack_start(hbox14, True, True, 0) hbox14.set_border_width(5) label38 = gtk.Label('') label38.set_text_with_mnemonic('_Search for') hbox14.pack_start(label38, True, True, 5) label38.set_alignment(1, 0.5) self.food_name_entry = gtk.Entry() label38.set_mnemonic_widget(self.food_name_entry) hbox14.pack_start(self.food_name_entry, True, True, 0) self.food_name_entry.set_activates_default(True) hbox15 = gtk.HBox(True, 0) self.box_txt.pack_start(hbox15, True, True, 0) hbox15.set_border_width(5) hbox15.pack_start(gtk.Label(''), True, True, 0) self.use_regex_check = gtk.CheckButton('Use _regular expressions') hbox15.pack_start(self.use_regex_check, True, True, 0) self.container_table = gtk.VBox(False, 0) self.notebook.append_page(self.container_table, gtk.Label('Nutritient Search')) self.table_nutr = gtk.Table(7, 4, False) self.container_table.pack_start(self.table_nutr, True, True, 0) self.table_nutr.set_border_width(5) self.table_nutr.set_row_spacings(5) self.table_nutr.set_col_spacings(5) label40 = gtk.Label('') label40.set_text_with_mnemonic('Food _group') self.table_nutr.attach(label40, 0, 1, 0, 1, gtk.FILL, 0, 0, 0) label40.set_alignment(1, 0.5) label41 = gtk.Label('') label41.set_text_with_mnemonic('Nor_malize per') self.table_nutr.attach(label41, 0, 1, 1, 2, gtk.FILL, 0, 0, 0) label41.set_alignment(0, 1) self.nutr_fg_combo = gnutr_widgets.GnutrComboBox() label40.set_mnemonic_widget(self.nutr_fg_combo) self.table_nutr.attach(self.nutr_fg_combo, 1, 4, 0, 1, gtk.EXPAND | gtk.FILL, 0, 0, 0) label42 = gtk.Label('') label42.set_markup('<b>Nutrients to search for</b>') self.table_nutr.attach(label42, 0, 4, 3, 4, gtk.FILL, 0, 0, 0) label42.set_alignment(0, 0.5) label43 = gtk.Label('') label43.set_text_with_mnemonic('_Nutrient') self.table_nutr.attach(label43, 0, 1, 4, 5, gtk.FILL, 0, 0, 0) label43.set_alignment(1, 0.5) self.nutr_combo = gnutr_widgets.GnutrComboBox() label43.set_mnemonic_widget(self.nutr_combo) self.table_nutr.attach(self.nutr_combo, 1, 2, 4, 5, gtk.EXPAND | gtk.FILL, 0, 0, 0) label45 = gtk.Label('') label45.set_text_with_mnemonic('_Constraint') self.table_nutr.attach(label45, 2, 3, 4, 5, gtk.EXPAND | gtk.FILL, 0, 0, 0) label45.set_alignment(1, 0.5) constraint_spin_adj = gtk.Adjustment(1, -5, 5, 1, 1, 1) self.constraint_spin = gtk.SpinButton(constraint_spin_adj, 1, 0) label45.set_mnemonic_widget(self.constraint_spin) self.table_nutr.attach(self.constraint_spin, 3, 4, 4, 5, gtk.FILL, 0, 0, 0) self.constraint_spin.set_activates_default(True) label44 = gtk.Label('') label44.set_text_with_mnemonic('Number of _foods') self.table_nutr.attach(label44, 2, 3, 1, 2, gtk.EXPAND | gtk.FILL, 0, 0, 0) label44.set_alignment(1, 0.5) table2 = gtk.Table(3, 1, False) self.table_nutr.attach(table2, 3, 4, 6, 7, gtk.FILL, gtk.EXPAND | gtk.FILL, 0, 0) table2.set_row_spacings(5) self.delete_button = gtk.Button(label='_Delete') table2.attach(self.delete_button, 0, 1, 1, 2, gtk.FILL, 0, 0, 0) self.add_button = gtk.Button(label='_Add') table2.attach(self.add_button, 0, 1, 0, 1, gtk.EXPAND | gtk.FILL, 0, 0, 0) self.num_foods_entry = gtk.Entry() label44.set_mnemonic_widget(self.num_foods_entry) self.table_nutr.attach(self.num_foods_entry, 3, 4, 1, 2, gtk.FILL, 0, 0, 0) self.num_foods_entry.set_size_request(80, -1) self.num_foods_entry.set_activates_default(True) scrolledwindow1 = gtk.ScrolledWindow() scrolledwindow1.set_size_request(-1, 120) self.table_nutr.attach(scrolledwindow1, 0, 3, 6, 7, gtk.EXPAND | gtk.FILL, gtk.EXPAND | gtk.FILL, 0, 0) self.treemodel = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_INT) self.treeview = gtk.TreeView(self.treemodel) self.treeview.set_rules_hint(True) self.selection = self.treeview.get_selection() self.selection.set_mode(gtk.SELECTION_SINGLE) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn('Nutrient', renderer, text=0) self.treeview.append_column(column) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn('Constraint', renderer, text=1) self.treeview.append_column(column) scrolledwindow1.add(self.treeview) self.norm_combo = gnutr_widgets.GnutrComboBox( (('calorie', ), ('gram', )), 0) label41.set_mnemonic_widget(self.norm_combo) self.table_nutr.attach(self.norm_combo, 1, 2, 1, 2, gtk.FILL, 0, 0, 0)
def test_gnutr_combobox_get_active_text(self): cb = gnutr_widgets.GnutrComboBox(self.fruits) cb.set_active(1) assert cb.get_active_text( ) == 'banana', 'GnutrComboBox.get_active_text did not return the corret value'
def test_gnutr_combobox_clear(self): cb = gnutr_widgets.GnutrComboBox(self.fruits) cb.clear_rows() model = cb.get_model() assert model.get_iter_first( ) == None, 'GnutrComboBox.clear_row did not remove data from the model'
def test_gnutr_combobox_set_rows_active(self): cb = gnutr_widgets.GnutrComboBox() cb.set_rows(self.fruits, 1) assert cb.get_active() == 1, 'first row is not selected'
def __init__(self): self.dialog = gtk.Dialog( title='Food Search Result', flags=gtk.DIALOG_MODAL, buttons=(gtk.STOCK_HELP, gtk.RESPONSE_HELP, gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) self.dialog.set_default_response(gtk.RESPONSE_OK) table = gtk.Table(4, 3, False) table.set_border_width(5) table.set_row_spacings(5) table.set_col_spacings(5) self.dialog.vbox.pack_start(table, True, True, 0) self.tree = gtk.TreeStore( gobject.TYPE_STRING, gobject.TYPE_STRING) #Second column was set to TYPE_INT #I don't see a reason for that self.treeview = gtk.TreeView(self.tree) self.selection = self.treeview.get_selection() self.selection.set_mode(gtk.SELECTION_SINGLE) scrolled_window = gtk.ScrolledWindow() scrolled_window.set_policy(gtk.POLICY_ALWAYS, gtk.POLICY_ALWAYS) scrolled_window.set_shadow_type(gtk.SHADOW_IN) scrolled_window.add(self.treeview) scrolled_window.set_size_request(400, 200) renderer = gtk.CellRendererText() column = gtk.TreeViewColumn('Food', renderer, text=0) self.treeview.append_column(column) table.attach(scrolled_window, 0, 4, 0, 1, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 0, 0) label1 = gtk.Label('Selected food') label1.set_alignment(1, 0.5) table.attach(label1, 0, 1, 1, 2, gtk.FILL, 0, 0, 0) self.food_entry = gtk.Entry() self.food_entry.set_property('editable', False) self.food_entry.set_property('can-focus', False) self.food_entry.set_activates_default(True) table.attach(self.food_entry, 1, 4, 1, 2, gtk.FILL | gtk.EXPAND, 0, 0, 0) self.amount_label = gtk.Label('') self.amount_label.set_text_with_mnemonic('_Amount') self.amount_label.set_alignment(1, 0.5) table.attach(self.amount_label, 0, 1, 2, 3, gtk.FILL, 0, 0, 0) self.amount_entry = gtk.Entry() self.amount_label.set_mnemonic_widget(self.amount_entry) self.amount_entry.set_activates_default(True) table.attach(self.amount_entry, 1, 2, 2, 3, gtk.FILL | gtk.EXPAND, 0, 0, 0) self.msre_label = gtk.Label('') self.msre_label.set_text_with_mnemonic('_Measure') self.msre_label.set_alignment(1, 0.5) table.attach(self.msre_label, 2, 3, 2, 3, gtk.FILL, 0, 0, 0) self.combo = gnutr_widgets.GnutrComboBox() self.msre_label.set_mnemonic_widget(self.combo) table.attach(self.combo, 3, 4, 2, 3, gtk.FILL | gtk.EXPAND, 0, 0, 0)