def _test_wlvllogg_import_from_diveroffice_files(self, filenames, mock_filenames, mock_skippopup, mock_encoding, mock_iface, mock_askuser, mock_notfoundquestion, mock_messagebarandlog): mocks_notfoundquestion = [] for answer, value in [['ok', 'rb1'], ['ok', 'rb2'], ['skip', 'rb3']]: a_mock = MagicMock() a_mock.answer = answer a_mock.value = value a_mock.reuse_column = 'location' mocks_notfoundquestion.append(a_mock) mock_notfoundquestion.side_effect = mocks_notfoundquestion mock_filenames.return_value = filenames mock_encoding.return_value = ['utf-8'] ms = MagicMock() ms.settingsdict = OrderedDict() importer = DiverofficeImport(self.iface.mainWindow(), ms) importer.select_files_and_load_gui() importer.start_import(importer.files, importer.skip_rows.checked, importer.confirm_names.checked, importer.import_all_data.checked) print('\n'.join([str(x) for x in mock_messagebarandlog.mock_calls]))
def _full_integration_test_to_db(self, filename, mock_MessagebarAndLog, mock_charset, mock_savefilename, mock_ask_instrument, mock_vacuum): mock_vacuum.return_value.result = 1 mock_charset.return_value = ('utf-8', True) mock_savefilename.return_value = [filename] mock_ask_instrument.return_value.value = u'testid' ms = MagicMock() ms.settingsdict = OrderedDict() importer = FieldloggerImport(self.iface.mainWindow(), ms) importer.parse_observations_and_populate_gui() #Set settings: for setting in importer.settings: if isinstance(setting, import_fieldlogger.StaffQuestion): setting.staff = u'teststaff' stored_settings = [[u's.comment', [[u'import_method', u'comments']]], [u'l.comment', [[u'import_method', u'comments']]], [u'f.comment', [[u'import_method', u'comments']]], [u'q.comment', [[u'import_method', u'comments']]], [u'l.meas.m', [[u'import_method', u'w_levels']]], [u'f.Accvol.m3', [[u'import_method', u'w_flow'], [u'flowtype', u'Accvol'], [u'unit', u'm3']]], [u's.turbiditet.FNU', [[u'import_method', u'w_qual_field'], [u'parameter', u'turbiditet'], [u'unit', u'FNU'], [u'depth', u''], [u'instrument', u'testid']]], [u'q.konduktivitet.µS/cm', [[u'import_method', u'w_qual_field'], [u'parameter', u'konduktivitet'], [u'unit', u'µS/cm'], [u'depth', u''], [u'instrument', u'testid']]], [u'q.syre.mg/L', [[u'import_method', u'w_qual_field'], [u'parameter', u'syre'], [u'unit', u'mg/L'], [u'depth', u''], [u'instrument', u'testid']]], [u'q.syre.%', [[u'import_method', u'w_qual_field'], [u'parameter', u'syre'], [u'unit', u'%'], [u'depth', u''], [u'instrument', u'testid']]], [u'q.temperatur.grC', [[u'import_method', u'w_qual_field'], [u'parameter', u'temperatur'], [u'unit', u'grC'], [u'depth', u''], [u'instrument', u'testid']]]] importer.set_parameters_using_stored_settings(stored_settings, importer.parameter_imports) importer.start_import(importer.observations)
def test_get_stored_settings_parameter_browser(): mock_ms = MagicMock() mock_ms.settingsdict = {'fieldlogger_export_parameter_browser': '((0, ("input_field_group_list", ("p1.u1;input;hint", "np2.u2;input2;hint2"), ), ), )'} settingskey = 'fieldlogger_export_parameter_browser' stored_settings = create_test_string(utils.get_stored_settings(mock_ms, settingskey)) reference_string = '((0, (input_field_group_list, (p1.u1;input;hint, np2.u2;input2;hint2))))' assert stored_settings == reference_string
def _test_wlvllogg_import_from_diveroffice_files( self, filenames, mock_filenames, mock_skippopup, mock_encoding, mock_iface, mock_askuser, mock_notfoundquestion, mock_messagebarandlog): mocks_notfoundquestion = [] for answer, value in [['ok', 'rb1'], ['ok', 'rb2'], ['skip', 'rb3']]: a_mock = MagicMock() a_mock.answer = answer a_mock.value = value a_mock.reuse_column = 'location' mocks_notfoundquestion.append(a_mock) mock_notfoundquestion.side_effect = mocks_notfoundquestion mock_filenames.return_value = filenames mock_encoding.return_value = ['utf-8'] ms = MagicMock() ms.settingsdict = OrderedDict() importer = DiverofficeImport(self.iface.mainWindow(), ms) importer.select_files_and_load_gui() importer.start_import(importer.files, importer.skip_rows.checked, importer.confirm_names.checked, importer.import_all_data.checked) print('\n'.join([ str(x) for x in mock_messagebarandlog.mock_calls ]))
def test_get_stored_settings(): mock_ms = MagicMock() mock_ms.settingsdict = {"test_settings_key": '((0, ("final_parameter_name", "testname"), ("test", "gotten_test")), (1, ("key1", "value1"), ("key2", "value2"), ("key3", "value3")))'} settingskey = 'test_settings_key' stored_settings = create_test_string(utils.get_stored_settings(mock_ms, settingskey)) reference_string = '((0, (final_parameter_name, testname), (test, gotten_test)), (1, (key1, value1), (key2, value2), (key3, value3)))' assert stored_settings == reference_string
def test_get_stored_settings_parameter_browser_real_parameter_name(): mock_ms = MagicMock() mock_ms.settingsdict = {"fieldlogger_pbrowser": '[(0, ("input_field_group_list", ["Aveflow.m3/s;numberDecimal|numberSigned;measure flow", "Accflow.m3;numberDecimal|numberSigned;measure flow"]))]'} settingskey = 'fieldlogger_pbrowser' test_string = create_test_string(utils.get_stored_settings(mock_ms, settingskey)) reference_string = '[(0, (input_field_group_list, [Aveflow.m3/s;numberDecimal|numberSigned;measure flow, Accflow.m3;numberDecimal|numberSigned;measure flow]))]' assert test_string == reference_string
def test_get_stored_settings(): mock_ms = MagicMock() mock_ms.settingsdict = {u'test_settings_key': u'0;final_parameter_name:testname;test:gotten_test/1;key1:value1;key2:value2;key3:value3'} settingskey = u'test_settings_key' stored_settings = create_test_string(ExportToFieldLogger.get_stored_settings(mock_ms, settingskey)) reference_string = u'((0, ((final_parameter_name, testname), (test, gotten_test))), (1, ((key1, value1), (key2, value2), (key3, value3))))' assert stored_settings == reference_string
def test_get_stored_settings_parameter_browser(): mock_ms = MagicMock() mock_ms.settingsdict = {u'fieldlogger_export_parameter_browser': u'((0, (u"parameter_list", (u"p1.u1;input;hint", u"np2.u2;input2;hint2"), ), ), )'} settingskey = u'fieldlogger_export_parameter_browser' stored_settings = create_test_string(ExportToFieldLogger.get_stored_settings(mock_ms, settingskey)) reference_string = u'((0, (parameter_list, (p1.u1;input;hint, np2.u2;input2;hint2))))' assert stored_settings == reference_string
def test_get_stored_settings(): mock_ms = MagicMock() mock_ms.settingsdict = {u"test_settings_key": u'((0, (u"final_parameter_name", u"testname"), (u"test", u"gotten_test")), (1, (u"key1", u"value1"), (u"key2", u"value2"), (u"key3", u"value3")))'} settingskey = u'test_settings_key' stored_settings = create_test_string(ExportToFieldLogger.get_stored_settings(mock_ms, settingskey)) reference_string = u'((0, (final_parameter_name, testname), (test, gotten_test)), (1, (key1, value1), (key2, value2), (key3, value3)))' assert stored_settings == reference_string
def test_get_stored_settings_parameter_browser_real_parameter_name(): mock_ms = MagicMock() mock_ms.settingsdict = {u"fieldlogger_pbrowser": u'[(0, (u"parameter_list", [u"Aveflow.m3/s;numberDecimal|numberSigned;measure flow", u"Accflow.m3;numberDecimal|numberSigned;measure flow"]))]'} settingskey = u'fieldlogger_pbrowser' test_string = create_test_string(ExportToFieldLogger.get_stored_settings(mock_ms, settingskey)) reference_string = u'[(0, (parameter_list, [Aveflow.m3/s;numberDecimal|numberSigned;measure flow, Accflow.m3;numberDecimal|numberSigned;measure flow]))]' assert test_string == reference_string
def test_save_stored_settings_real_parameter_name(): mock_ms = MagicMock() mock_ms.settingsdict = {} stored_settings = [(0, (('input_field_group_list', ['Aveflow.m3/s;numberDecimal|numberSigned;measure flow', 'Accflow.m3;numberDecimal|numberSigned;measure flow']), ('key0_2', 'value0_2'))), (1, (('location_suffix', 'value1_1'), ('key1_2', 'value1_2')))] testkey = 'fieldlogger_pgroups' utils.save_stored_settings(mock_ms, stored_settings, testkey) teststring = create_test_string(mock_ms.settingsdict[testkey]) reference_string = '[(0, (("input_field_group_list", ["Aveflow.m3/s;numberDecimal|numberSigned;measure flow", "Accflow.m3;numberDecimal|numberSigned;measure flow"], ), ("key0_2", "value0_2", ), ), ), (1, (("location_suffix", "value1_1", ), ("key1_2", "value1_2", ), ), )]' assert teststring == reference_string
def test_get_stored_settings_real_parameter_name(): mock_ms = MagicMock() mock_ms.settingsdict = { u"fieldlogger_pgroups": u'((0, (u"input_field_group_list", [u"Aveflow.m3/s;numberDecimal|numberSigned;measure flow", u"Accflow.m3;numberDecimal|numberSigned;measure flow"])))' } settingskey = u'fieldlogger_pgroups' test_string = create_test_string( utils.get_stored_settings(mock_ms, settingskey)) reference_string = u'(0, (input_field_group_list, [Aveflow.m3/s;numberDecimal|numberSigned;measure flow, Accflow.m3;numberDecimal|numberSigned;measure flow]))' assert test_string == reference_string
def test_save_stored_settings(): mock_ms = MagicMock() mock_ms.settingsdict = {} stored_settings = [(0, ((u'parameter_list', [u'p1.u1;it1:h1', u'p2.u2;it2:h2']), (u'key0_2', u'value0_2'))), (1, ((u'location_suffix', u'value1_1'), (u'key1_2', u'value1_2')))] testkey = u'thekey' ExportToFieldLogger.save_stored_settings(mock_ms, stored_settings, testkey) teststring = mock_ms.settingsdict[testkey] reference_string = u'[(0, ((u"parameter_list", [u"p1.u1;it1:h1", u"p2.u2;it2:h2"], ), (u"key0_2", u"value0_2", ), ), ), (1, ((u"location_suffix", u"value1_1", ), (u"key1_2", u"value1_2", ), ), )]' assert teststring == reference_string
def test_save_stored_settings_real_parameter_name(): mock_ms = MagicMock() mock_ms.settingsdict = {} stored_settings = [(0, ((u'parameter_list', [u'Aveflow.m3/s;numberDecimal|numberSigned;measure flow', u'Accflow.m3;numberDecimal|numberSigned;measure flow']), (u'key0_2', u'value0_2'))), (1, ((u'location_suffix', u'value1_1'), (u'key1_2', u'value1_2')))] testkey = u'fieldlogger_pgroups' ExportToFieldLogger.save_stored_settings(mock_ms, stored_settings, testkey) teststring = create_test_string(mock_ms.settingsdict[testkey]) reference_string = u'[(0, ((u"parameter_list", [u"Aveflow.m3/s;numberDecimal|numberSigned;measure flow", u"Accflow.m3;numberDecimal|numberSigned;measure flow"], ), (u"key0_2", u"value0_2", ), ), ), (1, ((u"location_suffix", u"value1_1", ), (u"key1_2", u"value1_2", ), ), )]' assert teststring == reference_string
def _test_staff_not_given(self, filename, mock_MessagebarAndLog, mock_charset, mock_savefilename ): mock_charset.return_value = ('utf-8', True) mock_savefilename.return_value = [filename] ms = MagicMock() ms.settingsdict = OrderedDict() importer = FieldloggerImport(self.iface.mainWindow(), ms) importer.parse_observations_and_populate_gui() importer.start_import(importer.observations) mock_MessagebarAndLog.critical.assert_called_with(bar_msg=u'Import error, staff not given')
def test_save_stored_settings(): mock_ms = MagicMock() mock_ms.settingsdict = {} stored_settings = [(0, (('input_field_group_list', ['p1.u1;it1:h1', 'p2.u2;it2:h2']), ('key0_2', 'value0_2'))), (1, (('location_suffix', 'value1_1'), ('key1_2', 'value1_2')))] testkey = 'thekey' utils.save_stored_settings(mock_ms, stored_settings, testkey) teststring = mock_ms.settingsdict[testkey] reference_string = '[(0, (("input_field_group_list", ["p1.u1;it1:h1", "p2.u2;it2:h2"], ), ("key0_2", "value0_2", ), ), ), (1, (("location_suffix", "value1_1", ), ("key1_2", "value1_2", ), ), )]' assert teststring == reference_string
def _test_wlvllogg_import_from_diveroffice_files(self, filenames, mock_filenames, mock_skippopup, mock_encoding, mock_iface, mock_askuser, mock_notfoundquestion): mock_notfoundquestion.return_value.answer = 'ok' mock_notfoundquestion.return_value.value = 'rb1' mock_notfoundquestion.return_value.reuse_column = 'location' mock_filenames.return_value = filenames mock_encoding.return_value = ['utf-8'] ms = MagicMock() ms.settingsdict = OrderedDict() importer = DiverofficeImport(self.iface.mainWindow(), ms) importer.select_files_and_load_gui() importer.start_import(importer.files, importer.skip_rows.checked, importer.confirm_names.checked, importer.import_all_data.checked)
def test_create_parameter_groups_using_stored_settings_string(self, mock_iface, mock_tables_columns, mock_settingsstrings, mock_settingsbarandlog, mock_popup): mock_tables_columns.return_value = {} mock_ms = MagicMock() mock_ms.settingsdict = {'fieldlogger_export_pbrowser': '', 'fieldlogger_export_pgroups': ''} mock_settingsstrings.side_effect = [('[[0, (("input_field_list", ["DO.mg/L;numberDecimal|numberSigned; ", "comment;text;Obsid related comment"], ), )]]', True), ('[[0, (("input_field_group_list", ["DO.mg/L;numberDecimal|numberSigned; ", "comment;text;Obsid related comment"], ), ("location_suffix", "2766", ), ("sublocation_suffix", "level", ), )], [1, (("input_field_group_list", ["comment;text;Obsid related comment"], ), ("location_suffix", "1234", ), ("sublocation_suffix", "comment", ), )]]', True)] exportfieldlogger = ExportToFieldLogger(None, mock_ms) exportfieldlogger.settings_strings_dialogs() assert mock_ms.settingsdict['fieldlogger_export_pbrowser'] == '[[0, (("input_field_list", ["DO.mg/L;numberDecimal|numberSigned; ", "comment;text;Obsid related comment"], ), )]]' assert mock_ms.settingsdict['fieldlogger_export_pgroups'] == '[[0, (("input_field_group_list", ["DO.mg/L;numberDecimal|numberSigned; ", "comment;text;Obsid related comment"], ), ("location_suffix", "2766", ), ("sublocation_suffix", "level", ), )], [1, (("input_field_group_list", ["comment;text;Obsid related comment"], ), ("location_suffix", "1234", ), ("sublocation_suffix", "comment", ), )]]'
def _test(self, filename, mock_filename, mock_skippopup, mock_encoding, mock_iface, mock_askuser, mock_selectedobsids): mock_filename.return_value = filename mock_encoding.return_value = [u'utf-8', True] mock_selectedobsids.return_value = (u'rb1', ) def side_effect(*args, **kwargs): mock_result = mock.MagicMock() if u'msg' in kwargs: if kwargs[u'msg'].startswith(u'Does the file contain a header?'): mock_result.result = 1 return mock_result if len(args) > 1: if args[1].startswith(u'Do you want to confirm'): mock_result.result = 0 return mock_result #mock_askuser.return_value.result.return_value = 0 elif args[1].startswith(u'Do you want to import all'): mock_result.result = 0 return mock_result elif args[1].startswith(u'Please note!\nForeign keys'): mock_result.result = 1 return mock_result elif args[1].startswith(u'Please note!\nThere are'): mock_result.result = 1 return mock_result elif args[1].startswith(u'It is a strong recommendation'): mock_result.result = 0 return mock_result mock_askuser.side_effect = side_effect ms = MagicMock() ms.settingsdict = OrderedDict() importer = GeneralCsvImportGui(self.iface.mainWindow(), ms) importer.load_gui() importer.load_files() importer.table_chooser.import_method = u'w_levels' for column in importer.table_chooser.columns: names = {u'date_time': u'date_time', u'meas': u'meas'} if column.db_column in names: column.file_column_name = names[column.db_column] if column.db_column == u'obsid': column.obsids_from_selection.setChecked(True) importer.start_import()
def _test(self, filename, mock_filename, mock_skippopup, mock_encoding, mock_iface, mock_askuser, mock_notfound): mock_filename.return_value = filename mock_encoding.return_value = [u'utf-8', True] mock_notfound.return_value.answer = u'ok' mock_notfound.return_value.value = u'obsid1' def side_effect(*args, **kwargs): mock_result = mock.MagicMock() if u'msg' in kwargs: if kwargs[u'msg'].startswith(u'Does the file contain a header?'): mock_result.result = 1 return mock_result if len(args) > 1: if args[1].startswith(u'Do you want to confirm'): mock_result.result = 0 return mock_result #mock_askuser.return_value.result.return_value = 0 elif args[1].startswith(u'Do you want to import all'): mock_result.result = 0 return mock_result elif args[1].startswith(u'Please note!\nForeign keys'): mock_result.result = 1 return mock_result elif args[1].startswith(u'Please note!\nThere are'): mock_result.result = 1 return mock_result elif args[1].startswith(u'It is a strong recommendation'): mock_result.result = 0 return mock_result mock_askuser.side_effect = side_effect ms = MagicMock() ms.settingsdict = OrderedDict() importer = GeneralCsvImportGui(self.iface.mainWindow(), ms) importer.load_gui() importer.load_files() importer.table_chooser.import_method = u'vlf_data' for column in importer.table_chooser.columns: names = {u'obsid': u'obsid', u'length': u'length2', u'real_comp': u'real_comp', u'imag_comp': u'imag_comp', u'comment': u'comment'} if column.db_column in names: column.file_column_name = names[column.db_column] importer.start_import()
def test_calculate_statistics(self, mock_selected_features, mock_iface, mock_messagebar): dbconnection = db_utils.DbConnectionManager() db_utils.sql_alter_db(u"""INSERT INTO obs_points(obsid) VALUES('1')""") db_utils.sql_alter_db(u"""INSERT INTO obs_points(obsid) VALUES('2')""") db_utils.sql_alter_db( u"""INSERT INTO w_levels(obsid, date_time, meas) VALUES('1', '2017-01-01', '1')""" ) db_utils.sql_alter_db( u"""INSERT INTO w_levels(obsid, date_time, meas) VALUES('1', '2017-01-02', '4')""" ) db_utils.sql_alter_db( u"""INSERT INTO w_levels(obsid, date_time, meas) VALUES('1', '2017-01-03', '5')""" ) db_utils.sql_alter_db( u"""INSERT INTO w_levels(obsid, date_time, meas) VALUES('2', '2017-01-04', '2')""" ) db_utils.sql_alter_db( u"""INSERT INTO w_levels(obsid, date_time, meas) VALUES('2', '2017-01-05', '8')""" ) db_utils.sql_alter_db( u"""INSERT INTO w_levels(obsid, date_time, meas) VALUES('2', '2017-01-06', '9')""" ) db_utils.sql_alter_db( u"""INSERT INTO w_levels(obsid, date_time, meas) VALUES('2', '2017-01-07', '10')""" ) mock_selected_features.return_value = [u'1', u'2'] ms = MagicMock() ms.settingsdict = OrderedDict() calc_stats = calculate_statistics.CalculateStatisticsGui( self.iface.mainWindow(), ms) calc_stats.db_browser.table_list = u'w_levels' calc_stats.db_browser.column_list = u'meas' calc_stats.calculate() ref = call.info( bar_msg= u'Statistics for table w_levels column meas done, see log for results.', button=True, duration=15, log_msg= u'Obsid;Min;Median;Average;Max;Nr of values\n1;1.0;4.0;3.33333333333;5.0;3\n2;2.0;8.5;7.25;10.0;4' ) print(str(mock_messagebar.mock_calls)) assert ref in mock_messagebar.mock_calls
def _test(self, filename, mock_MessagebarAndLog, mock_charset, mock_savefilename, mock_ask_instrument, mock_askuser): mock_charset.return_value = ('utf-8', True) mock_savefilename.return_value = [filename] mock_ask_instrument.return_value.value = u'testid' def side_effect(*args, **kwargs): mock_result = mock.MagicMock() if len(args) > 1: if args[1].startswith(u'Do you want to confirm'): mock_result.result = 0 return mock_result elif args[1].startswith(u'Do you want to import all'): mock_result.result = 0 return mock_result elif args[1].startswith(u'Please note!\nForeign keys'): mock_result.result = 1 return mock_result elif args[1].startswith(u'Please note!\nThere are'): mock_result.result = 1 return mock_result elif args[1].startswith(u'It is a strong recommendation'): mock_result.result = 0 return mock_result mock_askuser.side_effect = side_effect ms = MagicMock() ms.settingsdict = OrderedDict() importer = FieldloggerImport(self.iface.mainWindow(), ms) importer.parse_observations_and_populate_gui() #Set settings: for setting in importer.settings: if isinstance(setting, import_fieldlogger.StaffQuestion): setting.staff = u'teststaff' stored_settings = [[u'f.comment', [[u'import_method', u'comments']]], [u'Aveflow.m3/s', [[u'import_method', u'w_flow'], [u'flowtype', u'Momflow2'], [u'unit', u'aunit']]]] importer.set_parameters_using_stored_settings(stored_settings, importer.parameter_imports) importer.start_import(importer.observations)
def _test_wlvllogg_import_from_diveroffice_files( self, filenames, mock_filenames, mock_skippopup, mock_encoding, mock_iface, mock_askuser, mock_notfoundquestion): mock_notfoundquestion.return_value.answer = 'ok' mock_notfoundquestion.return_value.value = 'rb1' mock_notfoundquestion.return_value.reuse_column = 'location' mock_filenames.return_value = filenames mock_encoding.return_value = ['utf-8'] ms = MagicMock() ms.settingsdict = OrderedDict() importer = DiverofficeImport(self.iface.mainWindow(), ms) importer.select_files_and_load_gui() importer.start_import(importer.files, importer.skip_rows.checked, importer.confirm_names.checked, importer.import_all_data.checked)
def test_calculate_statistics(self, mock_selected_features, mock_iface, mock_messagebar): dbconnection = db_utils.DbConnectionManager() db_utils.sql_alter_db("""INSERT INTO obs_points(obsid) VALUES('1')""") db_utils.sql_alter_db("""INSERT INTO obs_points(obsid) VALUES('2')""") db_utils.sql_alter_db("""INSERT INTO w_levels(obsid, date_time, meas) VALUES('1', '2017-01-01', '1')""") db_utils.sql_alter_db("""INSERT INTO w_levels(obsid, date_time, meas) VALUES('1', '2017-01-02', '3')""") db_utils.sql_alter_db("""INSERT INTO w_levels(obsid, date_time, meas) VALUES('1', '2017-01-03', '5')""") db_utils.sql_alter_db("""INSERT INTO w_levels(obsid, date_time, meas) VALUES('2', '2017-01-04', '2')""") db_utils.sql_alter_db("""INSERT INTO w_levels(obsid, date_time, meas) VALUES('2', '2017-01-05', '8')""") db_utils.sql_alter_db("""INSERT INTO w_levels(obsid, date_time, meas) VALUES('2', '2017-01-06', '9')""") db_utils.sql_alter_db("""INSERT INTO w_levels(obsid, date_time, meas) VALUES('2', '2017-01-07', '10')""") mock_selected_features.return_value = ['1', '2'] ms = MagicMock() ms.settingsdict = OrderedDict() calc_stats = calculate_statistics.CalculateStatisticsGui(self.iface.mainWindow(), ms) calc_stats.db_browser.table_list = 'w_levels' calc_stats.db_browser.column_list = 'meas' calc_stats.calculate() ref = call.info(bar_msg='Statistics for table w_levels column meas done, see log for results.', button=True, duration=15, log_msg='Obsid;Min;Median;Average;Max;Nr of values\n1;1.0;3.0;3.0;5.0;3\n2;2.0;8.5;7.25;10.0;4') print(str(mock_messagebar.mock_calls)) assert ref in mock_messagebar.mock_calls