def test_pictureroot2_chosen(self): view = MockView(combos={"name_combo": [], "type_combo": []}) view.reply_file_chooser_dialog.append("chosen") presenter = ConnMgrPresenter(view) presenter.on_pictureroot2_btnbrowse_clicked() presenter.on_text_entry_changed("pictureroot2_entry") self.assertEquals(presenter.pictureroot, "chosen")
def test_pictureroot2_not_chosen(self): view = MockView(combos={"name_combo": [], "type_combo": []}) view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) presenter.pictureroot = "previously" presenter.on_pictureroot2_btnbrowse_clicked() self.assertEquals(presenter.pictureroot, "previously")
def test_on_dialog_response_ok_creates_picture_folders_no_exist(self): # make sure thumbnails and pictures folder do not exist. import tempfile path = tempfile.mktemp() # create view and presenter. view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'default': False, 'pictures': path, 'type': 'SQLite', 'file': path + '.db'}} (prefs.prefs[prefs.picture_root_pref], prefs.prefs[bauble.conn_default_pref], ) = os.path.split(path) view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) dialog = MockDialog() view.invoked = [] # invoke action presenter.on_dialog_response(dialog, RESPONSE_OK) # check existence of pictures folder self.assertTrue(os.path.isdir(path)) # check existence of thumbnails folder self.assertTrue(os.path.isdir(os.path.join(path, 'thumbs')))
def test_on_dialog_response_ok_creates_picture_folders_half_exist(self): # make sure pictures and thumbs folders respectively do and do not # already exist as folders. import tempfile path = tempfile.mktemp() os.mkdir(path) view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'default': False, 'pictures': path, 'type': 'SQLite', 'file': path + '.db'}} (prefs.prefs[prefs.picture_root_pref], prefs.prefs[bauble.conn_default_pref], ) = os.path.split(path) view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) dialog = MockDialog() view.invoked = [] # invoke action presenter.on_dialog_response(dialog, RESPONSE_OK) # superfluous action is not performed, view is closed # check existence of pictures folder self.assertTrue(os.path.isdir(path)) # check existence of thumbnails folder self.assertTrue(os.path.isdir(os.path.join(path, 'thumbs')))
def test_pictureroot2_not_chosen(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) presenter.pictureroot = 'previously' presenter.on_pictureroot2_btnbrowse_clicked() self.assertEquals(presenter.pictureroot, 'previously')
def test_file_not_chosen(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) presenter.filename = 'previously' presenter.on_file_btnbrowse_clicked() self.assertEquals(presenter.filename, 'previously')
def test_pictureroot_chosen(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) view.reply_file_chooser_dialog.append('chosen') presenter = ConnMgrPresenter(view) presenter.on_pictureroot_btnbrowse_clicked() presenter.on_text_entry_changed('pictureroot_entry') self.assertEquals(presenter.pictureroot, 'chosen')
def test_on_dialog_response_cancel(self): view = MockView(combos={"name_combo": [], "type_combo": []}) view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) dialog = MockDialog() view.reply_yes_no_dialog = [False] presenter.on_dialog_response(dialog, RESPONSE_CANCEL) self.assertFalse("run_message_dialog" in view.invoked) self.assertTrue(dialog.hidden)
def test_on_dialog_response_ok_invalid_params(self): view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_list_pref] = {} view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) dialog = MockDialog() presenter.on_dialog_response(dialog, RESPONSE_OK) self.assertTrue("run_message_dialog" in view.invoked) self.assertTrue(dialog.hidden)
def test_no_connection_on_add_confirm_negative(self): view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_list_pref] = {} presenter = ConnMgrPresenter(view) presenter.view.reply_entry_dialog.append("") presenter.on_add_button_clicked("button") ## nothing changes self.assertFalse(presenter.view.widget_get_visible("expander")) self.assertTrue(presenter.view.widget_get_visible("noconnectionlabel"))
def test_on_dialog_response_ok_invalid_params(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = {} view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) dialog = MockDialog() presenter.on_dialog_response(dialog, RESPONSE_OK) self.assertTrue('run_message_dialog' in view.invoked) self.assertTrue(dialog.hidden)
def test_on_dialog_response_cancel(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) dialog = MockDialog() view.reply_yes_no_dialog = [False] presenter.on_dialog_response(dialog, RESPONSE_CANCEL) self.assertFalse('run_message_dialog' in view.invoked) self.assertTrue(dialog.hidden)
def test_set_default_toggles_sensitivity(self): view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_default_pref] = "nugkui" prefs.prefs[bauble.conn_list_pref] = { "nugkui": {"type": "SQLite", "default": True, "pictures": "nugkui", "file": "nugkui.db"} } presenter = ConnMgrPresenter(view) view.widget_set_value("usedefaults_chkbx", True) presenter.on_usedefaults_chkbx_toggled("usedefaults_chkbx") self.assertFalse(view.widget_get_sensitive("file_entry"))
def test_on_dialog_close_or_delete(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) # T_0 self.assertFalse(view.get_window().hidden) # action presenter.on_dialog_close_or_delete("widget") # T_1 self.assertTrue(view.get_window().hidden)
def test_no_connection_on_add_confirm_negative(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = {} presenter = ConnMgrPresenter(view) presenter.view.reply_entry_dialog.append('') presenter.on_add_button_clicked('button') ## nothing changes self.assertFalse(presenter.view.widget_get_visible('expander')) self.assertFalse(presenter.view.widget_get_sensitive('connect_button')) self.assertTrue(presenter.view.widget_get_visible('noconnectionlabel'))
def test_no_connection_on_add_confirm_positive(self): view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_list_pref] = {} presenter = ConnMgrPresenter(view) presenter.view.reply_entry_dialog.append("conn_name") presenter.on_add_button_clicked("button") presenter.refresh_view() # this is done by gtk ## visibility swapped self.assertTrue(presenter.view.widget_get_visible("expander")) self.assertFalse(presenter.view.widget_get_visible("noconnectionlabel"))
def test_on_dialog_close_or_delete(self): view = MockView(combos={"name_combo": [], "type_combo": []}) view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) # T_0 self.assertFalse(view.get_window().hidden) # action presenter.on_dialog_close_or_delete("widget") # T_1 self.assertTrue(view.get_window().hidden)
def test_one_connection_on_remove_confirm_positive(self): view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_list_pref] = { "nugkui": {"default": True, "pictures": "nugkui", "type": "SQLite", "file": "nugkui.db"} } presenter = ConnMgrPresenter(view) presenter.view.reply_yes_no_dialog.append(True) presenter.on_remove_button_clicked("button") ## visibility swapped self.assertFalse(presenter.view.widget_get_visible("expander")) self.assertTrue(presenter.view.widget_get_visible("noconnectionlabel"))
def test_set_default_toggles_sensitivity(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_default_pref] = 'nugkui' prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'type': 'SQLite', 'default': True, 'pictures': 'nugkui', 'file': 'nugkui.db'}, } presenter = ConnMgrPresenter(view) view.widget_set_value('usedefaults_chkbx', True) presenter.on_usedefaults_chkbx_toggled('usedefaults_chkbx') self.assertFalse(view.widget_get_sensitive('file_entry'))
def test_one_connection_on_add_confirm_positive(self): view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_list_pref] = { "nugkui": {"default": True, "pictures": "nugkui", "type": "SQLite", "file": "nugkui.db"} } prefs.prefs[bauble.conn_default_pref] = "nugkui" presenter = ConnMgrPresenter(view) presenter.view.reply_entry_dialog.append("new_conn") presenter.on_add_button_clicked("button") presenter.refresh_view() # this is done by gtk self.assertTrue(("combobox_prepend_text", ["name_combo", "new_conn"]) in presenter.view.invoked_detailed) self.assertTrue(("widget_set_value", ["name_combo", "new_conn", ()]) in presenter.view.invoked_detailed) print presenter.view.invoked_detailed raise SkipTest("related to issue #194")
def test_no_connection_on_add_confirm_negative(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = {} presenter = ConnMgrPresenter(view) presenter.view.reply_entry_dialog.append('') presenter.on_add_button_clicked('button') ## nothing changes self.assertFalse(presenter.view.widget_get_visible( 'expander')) self.assertFalse(presenter.view.widget_get_sensitive( 'connect_button')) self.assertTrue(presenter.view.widget_get_visible( 'noconnectionlabel'))
def test_connection_uri_property(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_default_pref] = 'quisquis' prefs.prefs[bauble.conn_list_pref] = { 'quisquis': { 'type': 'PostgreSQL', 'passwd': False, 'pictures': '/tmp/', 'db': 'quisquis', 'host': 'localhost', 'user': '******' } } presenter = ConnMgrPresenter(view) self.assertEquals(presenter.connection_name, 'quisquis') self.assertEquals(presenter.dbtype, 'PostgreSQL') ## we need trigger all signals that would go by gtk p = presenter.connections[presenter.connection_name] presenter.view.widget_set_value('database_entry', p['db']) presenter.on_text_entry_changed('database_entry') presenter.view.widget_set_value('user_entry', p['user']) presenter.on_text_entry_changed('user_entry') presenter.view.widget_set_value('host_entry', p['host']) presenter.on_text_entry_changed('host_entry') self.assertEquals(presenter.connection_uri, 'postgresql://pg@localhost/quisquis')
def test_one_connection_shown_removed_message(self): view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_list_pref] = { "nugkui": {"default": True, "pictures": "nugkui", "type": "SQLite", "file": "nugkui.db"} } presenter = ConnMgrPresenter(view) # T_0 self.assertTrue(presenter.view.widget_get_visible("expander")) self.assertFalse(presenter.view.widget_get_visible("noconnectionlabel")) # action presenter.remove_connection("nugkui") # T_1 self.assertTrue(presenter.view.widget_get_visible("noconnectionlabel")) self.assertFalse(presenter.view.widget_get_visible("expander"))
def test_parameters_to_uri_sqlite(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_default_pref] = None prefs.prefs[bauble.conn_list_pref] = {} presenter = ConnMgrPresenter(view) params = {'type': 'SQLite', 'default': False, 'file': '/tmp/test.db', 'pictures': '/tmp/'} self.assertEquals(presenter.parameters_to_uri(params), 'sqlite:////tmp/test.db') params = {'type': 'PostgreSQL', 'passwd': False, 'pictures': '/tmp/', 'db': 'quisquis', 'host': 'localhost', 'user': '******'} self.assertEquals(presenter.parameters_to_uri(params), 'postgresql://pg@localhost/quisquis') params = {'type': 'PostgreSQL', 'passwd': True, 'pictures': '/tmp/', 'db': 'quisquis', 'host': 'localhost', 'user': '******'} view.reply_entry_dialog.append('secret') self.assertEquals(presenter.parameters_to_uri(params), 'postgresql://*****:*****@localhost/quisquis') params = {'type': 'PostgreSQL', 'passwd': False, 'pictures': '/tmp/', 'port': '9876', 'db': 'quisquis', 'host': 'localhost', 'user': '******'} self.assertEquals(presenter.parameters_to_uri(params), 'postgresql://pg@localhost:9876/quisquis') params = {'type': 'PostgreSQL', 'passwd': True, 'pictures': '/tmp/', 'port': '9876', 'db': 'quisquis', 'host': 'localhost', 'user': '******'} view.reply_entry_dialog.append('secret') self.assertEquals(presenter.parameters_to_uri(params), 'postgresql://*****:*****@localhost:9876/quisquis') params = {'type': 'PostgreSQL', 'passwd': False, 'pictures': '/tmp/', 'options': ['is_this_possible=no', 'why_do_we_test=because'], 'db': 'quisquis', 'host': 'localhost', 'user': '******'} self.assertEquals(presenter.parameters_to_uri(params), 'postgresql://pg@localhost/quisquis?' 'is_this_possible=no&why_do_we_test=because')
def test_on_dialog_response_ok_valid_params(self): view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_list_pref] = { "nugkui": {"default": False, "pictures": "/tmp/nugkui", "type": "SQLite", "file": "/tmp/nugkui.db"} } prefs.prefs[bauble.conn_default_pref] = "nugkui" prefs.prefs[prefs.picture_root_pref] = "/tmp" view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) dialog = MockDialog() view.invoked = [] presenter.on_dialog_response(dialog, RESPONSE_OK) self.assertFalse("run_message_dialog" in view.invoked) self.assertTrue(dialog.hidden) self.assertEquals(prefs.prefs[prefs.picture_root_pref], "/tmp/nugkui")
def test_one_connection_on_remove_confirm_negative(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'default': True, 'pictures': 'nugkui', 'type': 'SQLite', 'file': 'nugkui.db'}} presenter = ConnMgrPresenter(view) presenter.view.reply_yes_no_dialog.append(False) presenter.on_remove_button_clicked('button') ## nothing changes self.assertTrue(presenter.view.widget_get_visible( 'expander')) self.assertFalse(presenter.view.widget_get_visible( 'noconnectionlabel'))
def test_no_connections_then_message(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = {} presenter = ConnMgrPresenter(view) self.assertFalse(presenter.view.widget_get_visible('expander')) self.assertTrue(presenter.view.widget_get_visible('noconnectionlabel'))
def test_check_parameters_valid(self): import copy view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_default_pref] = 'quisquis' prefs.prefs[bauble.conn_list_pref] = { 'quisquis': {'type': 'PostgreSQL', 'passwd': False, 'pictures': '/tmp/', 'db': 'quisquis', 'host': 'localhost', 'user': '******'}} presenter = ConnMgrPresenter(view) params = presenter.connections['quisquis'] valid, message = presenter.check_parameters_valid(params) self.assertTrue(valid) params = copy.copy(presenter.connections['quisquis']) params['user'] = '' valid, message = presenter.check_parameters_valid(params) self.assertFalse(valid) params = copy.copy(presenter.connections['quisquis']) params['host'] = '' valid, message = presenter.check_parameters_valid(params) self.assertFalse(valid) sqlite_params = {'type': 'SQLite', 'default': False, 'file': '/tmp/test.db', 'pictures': '/tmp/'} params = copy.copy(sqlite_params) valid, message = presenter.check_parameters_valid(params) self.assertTrue(valid) params = copy.copy(sqlite_params) params['file'] = '/usr/bin/sh' valid, message = presenter.check_parameters_valid(params) self.assertFalse(valid)
def test_connection_uri_property(self): view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_default_pref] = "quisquis" prefs.prefs[bauble.conn_list_pref] = { "quisquis": { "type": "PostgreSQL", "passwd": False, "pictures": "/tmp/", "db": "quisquis", "host": "localhost", "user": "******", } } presenter = ConnMgrPresenter(view) self.assertEquals(presenter.connection_name, "quisquis") self.assertEquals(presenter.dbtype, "PostgreSQL") ## we need trigger all signals that would go by gtk p = presenter.connections[presenter.connection_name] presenter.view.widget_set_value("database_entry", p["db"]) presenter.on_text_entry_changed("database_entry") presenter.view.widget_set_value("user_entry", p["user"]) presenter.on_text_entry_changed("user_entry") presenter.view.widget_set_value("host_entry", p["host"]) presenter.on_text_entry_changed("host_entry") self.assertEquals(presenter.connection_uri, "postgresql://pg@localhost/quisquis")
def test_parameters_to_uri_sqlite(self): view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_default_pref] = None prefs.prefs[bauble.conn_list_pref] = {} presenter = ConnMgrPresenter(view) params = {"type": "SQLite", "default": False, "file": "/tmp/test.db", "pictures": "/tmp/"} self.assertEquals(presenter.parameters_to_uri(params), "sqlite:////tmp/test.db") params = { "type": "PostgreSQL", "passwd": False, "pictures": "/tmp/", "db": "quisquis", "host": "localhost", "user": "******", } self.assertEquals(presenter.parameters_to_uri(params), "postgresql://pg@localhost/quisquis") params = { "type": "PostgreSQL", "passwd": True, "pictures": "/tmp/", "db": "quisquis", "host": "localhost", "user": "******", } view.reply_entry_dialog.append("secret") self.assertEquals(presenter.parameters_to_uri(params), "postgresql://*****:*****@localhost/quisquis") params = { "type": "PostgreSQL", "passwd": False, "pictures": "/tmp/", "port": "9876", "db": "quisquis", "host": "localhost", "user": "******", } self.assertEquals(presenter.parameters_to_uri(params), "postgresql://pg@localhost:9876/quisquis") params = { "type": "PostgreSQL", "passwd": True, "pictures": "/tmp/", "port": "9876", "db": "quisquis", "host": "localhost", "user": "******", } view.reply_entry_dialog.append("secret") self.assertEquals(presenter.parameters_to_uri(params), "postgresql://*****:*****@localhost:9876/quisquis") params = { "type": "PostgreSQL", "passwd": False, "pictures": "/tmp/", "options": ["is_this_possible=no", "why_do_we_test=because"], "db": "quisquis", "host": "localhost", "user": "******", } self.assertEquals( presenter.parameters_to_uri(params), "postgresql://pg@localhost/quisquis?" "is_this_possible=no&why_do_we_test=because", )
def test_when_user_selects_different_type(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_default_pref] = 'nugkui' prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'type': 'SQLite', 'default': True, 'pictures': 'nugkui', 'file': 'nugkui.db'}, 'quisquis': {'type': 'PostgreSQL', 'passwd': False, 'pictures': '', 'db': 'quisquis', 'host': 'localhost', 'user': '******'}} presenter = ConnMgrPresenter(view) # T_0 self.assertEquals(presenter.connection_name, 'nugkui') self.assertTrue(presenter.view.widget_get_visible( 'sqlite_parambox')) # action view.widget_set_value('name_combo', 'quisquis') presenter.dbtype = 'PostgreSQL' # who to trigger this in tests? presenter.on_name_combo_changed('name_combo') # result self.assertEquals(presenter.connection_name, 'quisquis') presenter.refresh_view() # in reality this is triggered by gtk view self.assertEquals(presenter.dbtype, 'PostgreSQL') ## if the above succeeds, the following is riggered by the view! #presenter.on_combo_changed('type_combo', 'PostgreSQL') # T_1 self.assertTrue(presenter.view.widget_get_visible( 'dbms_parambox'))
def test_on_dialog_response_ok_valid_params(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'default': False, 'pictures': '/tmp/nugkui', 'type': 'SQLite', 'file': '/tmp/nugkui.db'}} prefs.prefs[bauble.conn_default_pref] = 'nugkui' prefs.prefs[prefs.picture_root_pref] = '/tmp' view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) dialog = MockDialog() view.invoked = [] presenter.on_dialog_response(dialog, RESPONSE_OK) self.assertFalse('run_message_dialog' in view.invoked) self.assertTrue(dialog.hidden) self.assertEquals(prefs.prefs[prefs.picture_root_pref], '/tmp/nugkui')
def test_one_connection_on_add_confirm_positive(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'default': True, 'pictures': 'nugkui', 'type': 'SQLite', 'file': 'nugkui.db'}} prefs.prefs[bauble.conn_default_pref] = 'nugkui' presenter = ConnMgrPresenter(view) presenter.view.reply_entry_dialog.append('new_conn') presenter.on_add_button_clicked('button') presenter.refresh_view() # this is done by gtk self.assertTrue(('combobox_prepend_text', ['name_combo', 'new_conn']) in presenter.view.invoked_detailed) self.assertTrue(('widget_set_value', ['name_combo', 'new_conn', ()]) in presenter.view.invoked_detailed) print presenter.view.invoked_detailed raise SkipTest("related to issue #194")
def test_on_dialog_response_cancel_params_changed(self): view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_list_pref] = { "nugkui": {"default": False, "pictures": "/tmp/nugkui", "type": "SQLite", "file": "/tmp/nugkui.db"} } prefs.prefs[bauble.conn_default_pref] = "nugkui" view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) ## change something view.widget_set_value("usedefaults_chkbx", True) presenter.on_usedefaults_chkbx_toggled("usedefaults_chkbx") ## press escape dialog = MockDialog() view.reply_yes_no_dialog = [True] view.invoked = [] presenter.on_dialog_response(dialog, RESPONSE_CANCEL) ## question was asked whether to save self.assertFalse("run_message_dialog" in view.invoked) self.assertTrue("run_yes_no_dialog" in view.invoked) self.assertTrue(dialog.hidden)
def test_one_connection_shown_removed_message(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'nugkui': { 'default': True, 'pictures': 'nugkui', 'type': 'SQLite', 'file': 'nugkui.db' } } presenter = ConnMgrPresenter(view) # T_0 self.assertTrue(presenter.view.widget_get_visible('expander')) self.assertFalse( presenter.view.widget_get_visible('noconnectionlabel')) # action presenter.remove_connection('nugkui') # T_1 self.assertTrue(presenter.view.widget_get_visible('noconnectionlabel')) self.assertFalse(presenter.view.widget_get_visible('expander'))
def test_two_connection_on_remove_confirm_positive(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'default': True, 'pictures': 'nugkui', 'type': 'SQLite', 'file': 'nugkui.db'}, 'btuu': {'default': True, 'pictures': 'btuu', 'type': 'SQLite', 'file': 'btuu.db'}} presenter = ConnMgrPresenter(view) presenter.view.reply_yes_no_dialog.append(True) presenter.on_remove_button_clicked('button') ## visibility same self.assertTrue(presenter.view.widget_get_visible( 'expander')) self.assertFalse(presenter.view.widget_get_visible( 'noconnectionlabel')) self.assertTrue('combobox_set_active' in view.invoked)
def test_one_connection_shown_removed_message(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'default': True, 'pictures': 'nugkui', 'type': 'SQLite', 'file': 'nugkui.db'}} presenter = ConnMgrPresenter(view) # T_0 self.assertTrue(presenter.view.widget_get_visible( 'expander')) self.assertFalse(presenter.view.widget_get_visible( 'noconnectionlabel')) # action presenter.remove_connection('nugkui') # T_1 self.assertTrue(presenter.view.widget_get_visible( 'noconnectionlabel')) self.assertFalse(presenter.view.widget_get_visible( 'expander'))
def test_pictureroot2_chosen(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) view.reply_file_chooser_dialog.append('chosen') presenter = ConnMgrPresenter(view) presenter.on_pictureroot2_btnbrowse_clicked() presenter.on_text_entry_changed('pictureroot2_entry') self.assertEquals(presenter.pictureroot, 'chosen')
def test_on_dialog_response_cancel_params_changed(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'nugkui': { 'default': False, 'pictures': '/tmp/nugkui', 'type': 'SQLite', 'file': '/tmp/nugkui.db' } } prefs.prefs[bauble.conn_default_pref] = 'nugkui' view.reply_file_chooser_dialog = [] presenter = ConnMgrPresenter(view) ## change something view.widget_set_value('usedefaults_chkbx', True) presenter.on_usedefaults_chkbx_toggled('usedefaults_chkbx') ## press escape dialog = MockDialog() view.reply_yes_no_dialog = [True] view.invoked = [] presenter.on_dialog_response(dialog, RESPONSE_CANCEL) ## question was asked whether to save self.assertFalse('run_message_dialog' in view.invoked) self.assertTrue('run_yes_no_dialog' in view.invoked) self.assertTrue(dialog.hidden)
def test_check_parameters_valid(self): import copy view = MockView(combos={"name_combo": [], "type_combo": []}) prefs.prefs[bauble.conn_default_pref] = "quisquis" prefs.prefs[bauble.conn_list_pref] = { "quisquis": { "type": "PostgreSQL", "passwd": False, "pictures": "/tmp/", "db": "quisquis", "host": "localhost", "user": "******", } } presenter = ConnMgrPresenter(view) params = presenter.connections["quisquis"] valid, message = presenter.check_parameters_valid(params) self.assertTrue(valid) params = copy.copy(presenter.connections["quisquis"]) params["user"] = "" valid, message = presenter.check_parameters_valid(params) self.assertFalse(valid) params = copy.copy(presenter.connections["quisquis"]) params["host"] = "" valid, message = presenter.check_parameters_valid(params) self.assertFalse(valid) sqlite_params = {"type": "SQLite", "default": False, "file": "/tmp/test.db", "pictures": "/tmp/"} params = copy.copy(sqlite_params) valid, message = presenter.check_parameters_valid(params) self.assertTrue(valid) params = copy.copy(sqlite_params) params["file"] = "/usr/bin/sh" valid, message = presenter.check_parameters_valid(params) self.assertFalse(valid)
def test_one_connection_shown_and_selected_sqlite(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'default': True, 'pictures': 'nugkui', 'type': 'SQLite', 'file': 'nugkui.db'}} prefs.prefs[bauble.conn_default_pref] = 'nugkui' presenter = ConnMgrPresenter(view) self.assertEquals(presenter.connection_name, 'nugkui') self.assertTrue(presenter.view.widget_get_visible( 'expander')) self.assertFalse(presenter.view.widget_get_visible( 'noconnectionlabel'))
def test_no_connection_on_add_confirm_positive(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = {} presenter = ConnMgrPresenter(view) presenter.view.reply_entry_dialog.append('conn_name') presenter.on_add_button_clicked('button') presenter.refresh_view() # this is done by gtk ## visibility swapped self.assertTrue(presenter.view.widget_get_visible('expander')) self.assertTrue(presenter.view.widget_get_sensitive('connect_button')) self.assertFalse( presenter.view.widget_get_visible('noconnectionlabel'))
def test_two_connection_initialize_default_second(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'default': True, 'pictures': 'nugkui', 'type': 'SQLite', 'file': 'nugkui.db'}, 'btuu': {'default': False, 'pictures': 'btuu', 'type': 'SQLite', 'file': 'btuu.db'}} prefs.prefs[bauble.conn_default_pref] = 'bruu' presenter = ConnMgrPresenter(view) self.assertEquals(presenter.connection_name, 'btuu') params = presenter.connections[presenter.connection_name] self.assertEquals(params['default'], False) self.assertFalse(view.widget_get_value('usedefaults_chkbx'))
def test_two_connections_wrong_default_use_first_one(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_default_pref] = 'nugkui' prefs.prefs[bauble.conn_list_pref] = { 'nugkui': {'default': True, 'pictures': 'nugkui', 'type': 'SQLite', 'file': 'nugkui.db'}, 'quisquis': {'passwd': False, 'pictures': '', 'db': 'quisquis', 'host': 'localhost', 'user': '******', 'type': 'Oracle'}} prefs.prefs[bauble.conn_default_pref] = 'nonce' presenter = ConnMgrPresenter(view) as_list = presenter.connection_names self.assertEquals(presenter.connection_name, as_list[0])
def test_one_connection_shown_and_selected_oracle(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) prefs.prefs[bauble.conn_list_pref] = { 'quisquis': { 'passwd': False, 'pictures': '', 'db': 'quisquis', 'host': 'localhost', 'user': '******', 'type': 'Oracle' } } prefs.prefs[bauble.conn_default_pref] = 'quisquis' presenter = ConnMgrPresenter(view) self.assertEquals(presenter.connection_name, 'quisquis') self.assertTrue(presenter.view.widget_get_visible('expander')) self.assertTrue(presenter.view.widget_get_visible('dbms_parambox')) self.assertFalse(presenter.view.widget_get_visible('sqlite_parambox')) self.assertFalse( presenter.view.widget_get_visible('noconnectionlabel'))
def test_can_create_presenter(self): view = MockView(combos={'name_combo': [], 'type_combo': []}) presenter = ConnMgrPresenter(view) self.assertEquals(presenter.view, view)