def test_laton_from_vectorlayer(mock_tables_columns, mock_write_printlist_to_file, mock_MessagebarAndLog):
        mock_ms = mock.MagicMock()
        mock_ms.settingsdict = {}

        mock_tables_columns.return_value = {}
        _fields = [QgsField('id', QVariant.Int, QVariant.typeToName(QVariant.Int)),
                   QgsField('obsid', QVariant.String, QVariant.typeToName(QVariant.String))]
        data = [[1, 'obsid1'], [2, 'obsid2'], [3, 'obsid3']]
        geometries = [QgsGeometry.fromWkt('POINT(1000000.0 100000.0)'),
                      QgsGeometry.fromWkt('POINT(2000000.0 200000.0)'),
                      QgsGeometry.fromWkt('POINT(3000000.0 300000.0)')]

        vlayer = create_vectorlayer(_fields, data, geometries=geometries, geomtype='Point', crs=3006)

        mock_iface = QWidget()
        mock_iface.legendInterface = mock.Mock()
        mock_iface.legendInterface.return_value.layers.return_value = [vlayer]
        exporttofieldlogger = ExportToFieldLogger(mock_iface, mock_ms)

        stored_settings = [(0, (('input_field_group_list', ['par1;type1;hint1']), ('sublocation_suffix', 'group'),
                                ('location_suffix', 'proj'))),
                           (1, (('input_field_group_list', ['par2;type2;hint2']), ('sublocation_suffix', 'group'),
                                ('location_suffix', 'proj2')))]

        parameter_groups = ExportToFieldLogger.create_parameter_groups_using_stored_settings(stored_settings, None)
        parameter_groups[0]._obsid_list.paste_data(['obsid1', 'obsid2'])
        parameter_groups[1]._obsid_list.paste_data(['obsid3'])
        exporttofieldlogger.parameter_groups = parameter_groups
        exporttofieldlogger.obs_from_vlayer.setChecked(True)
        exporttofieldlogger.export()


        print("printlist" + str(mock_write_printlist_to_file.mock_calls))

        assert mock_write_printlist_to_file.mock_calls == [mock.call(['NAME;INPUTTYPE;HINT', 'par1;type1;hint1 ', 'par2;type2;hint2 ', 'NAME;SUBNAME;LAT;LON;INPUTFIELD', 'obsid1.proj;obsid1.proj.group;0.9019366063889334;19.489297537299507;par1', 'obsid2.proj;obsid2.proj.group;1.7601631374427096;28.363010767336505;par1', 'obsid3.proj2;obsid3.proj2.group;2.5166567545976224;36.93072164080035;par2'])]
    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", ), )]]'