Esempio n. 1
0
    def test_get_displacement_rate_and_affected_with_qsetting(self):
        """Test for get_displacement_rate and is_affected with QSettings."""
        # Create custom qsettings
        qsettings = QSettings(INASAFE_TEST)
        qsettings.clear()
        # Save the default profile to qsettings
        default_profile = generate_default_profile()
        set_setting('population_preference', default_profile, qsettings)

        # Check the default one first
        default_profile = generate_default_profile()
        class_key = flood_hazard_classes['classes'][0]['key']
        value = is_affected(hazard_flood['key'], flood_hazard_classes['key'],
                            class_key, qsettings)
        expected_value = default_profile[hazard_flood['key']][
            flood_hazard_classes['key']][class_key]['affected']
        self.assertEqual(value, expected_value)

        value = get_displacement_rate(hazard_flood['key'],
                                      flood_hazard_classes['key'], class_key,
                                      qsettings)
        expected_value = default_profile[hazard_flood['key']][
            flood_hazard_classes['key']][class_key]['displacement_rate']
        self.assertEqual(value, expected_value)

        # Change displacement rate
        new_displacement_rate = 1
        default_profile[hazard_flood['key']][
            flood_hazard_classes['key']][class_key]['displacement_rate'] = 1
        set_setting('population_preference', default_profile, qsettings)
        value = get_displacement_rate(hazard_flood['key'],
                                      flood_hazard_classes['key'], class_key,
                                      qsettings)
        self.assertEqual(value, new_displacement_rate)

        # Change affected value
        new_affected = False
        default_profile[hazard_flood['key']][
            flood_hazard_classes['key']][class_key]['affected'] = new_affected
        set_setting('population_preference', default_profile, qsettings)
        value = is_affected(hazard_flood['key'], flood_hazard_classes['key'],
                            class_key, qsettings)
        self.assertEqual(value, new_affected)
        value = get_displacement_rate(hazard_flood['key'],
                                      flood_hazard_classes['key'], class_key,
                                      qsettings)
        # Should be 0 since it's not affected
        self.assertEqual(value, 0)
Esempio n. 2
0
class TestNeedsProfile(NeedsProfile):
    """Since we don't want to change the actual minimum needs settings in
    QSettings, we are using a mock profile.

    :param test_profile: The mock replacement of Minimum Needs
    """

    # noinspection PyMissingConstructor
    def __init__(self, test_profile='Test Minimum Needs Settings'):
        self.settings = QSettings(test_profile)
        self.settings.clear()
        self.settings = QSettings(test_profile)
        self.local = 'en'
        minimum_needs = self._defaults()
        minimum_needs['provenance'] = 'Test'
        minimum_needs['profile'] = 'Test'
        self._root_directory = None
        self.minimum_needs = minimum_needs

    def __del__(self):
        self.settings.clear()
class TestNeedsProfile(NeedsProfile):
    """Since we don't want to change the actual minimum needs settings in
    QSettings, we are using a mock profile.

    :param test_profile: The mock replacement of Minimum Needs
    """
    # noinspection PyMissingConstructor

    def __init__(self, test_profile='Test Minimum Needs Settings'):
        self.settings = QSettings(test_profile)
        self.settings.clear()
        self.settings = QSettings(test_profile)
        self.local = 'en'
        minimum_needs = self._defaults()
        minimum_needs['provenance'] = 'Test'
        minimum_needs['profile'] = 'Test'
        self._root_directory = None
        self.minimum_needs = minimum_needs

    def __del__(self):
        self.settings.clear()
Esempio n. 4
0
class TestSettings(unittest.TestCase):
    """Test Settings."""
    def setUp(self):
        """Fixture run before all tests."""
        self.qsettings = QSettings(INASAFE_TEST)
        self.qsettings.clear()

    def tearDown(self):
        """Fixture run after each test."""
        # Make sure it's empty
        self.qsettings.clear()

    def test_read_write_setting(self):
        """Test read and write setting."""
        # General Setting
        set_general_setting('key', 'value', self.qsettings)
        self.assertEqual('value',
                         general_setting('key', qsettings=self.qsettings))
        delete_general_setting('key', qsettings=self.qsettings)
        self.assertEqual(
            'default',
            general_setting('key', default='default',
                            qsettings=self.qsettings))

        set_general_setting('key', 'True', self.qsettings)
        self.assertEqual(
            'True',
            general_setting('key', qsettings=self.qsettings,
                            expected_type=str))
        self.assertEqual(
            True,
            general_setting('key',
                            qsettings=self.qsettings,
                            expected_type=bool))
        delete_general_setting('key', qsettings=self.qsettings)
        self.assertEqual(
            'default',
            general_setting('key', default='default',
                            qsettings=self.qsettings))

        set_general_setting('key', 'false', self.qsettings)
        self.assertEqual(
            'false',
            general_setting('key', qsettings=self.qsettings,
                            expected_type=str))
        self.assertEqual(
            False,
            general_setting('key',
                            qsettings=self.qsettings,
                            expected_type=bool))
        delete_general_setting('key', qsettings=self.qsettings)
        self.assertEqual(
            'default',
            general_setting('key', default='default',
                            qsettings=self.qsettings))

        # Under InaSAFE scope
        set_setting('key', 'value', self.qsettings)
        self.assertEqual('value', setting('key', qsettings=self.qsettings))
        delete_setting('key', qsettings=self.qsettings)
        self.assertEqual(
            'default',
            setting('key', default='default', qsettings=self.qsettings))

        # Using InaSAFE setting default
        key = 'developer_mode'
        actual_value = inasafe_default_settings.get(key)
        self.assertEqual(actual_value, setting(key, qsettings=self.qsettings))

    def test_read_write_dictionary(self):
        """Test for reading and writing dictionary in QSettings."""
        dictionary = {
            'a': 'a',
            'b': 1,
            'c': {
                'd': True,
                'e': {
                    'f': 1.0,
                    'g': 2
                }
            }
        }
        set_setting('key', dictionary, self.qsettings)
        value = setting('key', qsettings=self.qsettings)
        self.assertDictEqual(dictionary, value)

        profile_dictionary = generate_default_profile()
        set_setting('population_preference', profile_dictionary,
                    self.qsettings)
        value = setting('population_preference', qsettings=self.qsettings)
        self.assertDictEqual(profile_dictionary, value)

    def test_export_import_setting(self):
        """Test for export_setting method."""
        profile_file = unique_filename(suffix='.json',
                                       dir='population_preference')
        original_settings = {
            'key': 'value',
            'key_bool': True,
            'population_preference': generate_default_profile(),
            'key_int': 1,
            'key_float': 2.0
        }
        # Write
        for key, value in list(original_settings.items()):
            set_setting(key, value, self.qsettings)
        # Export
        inasafe_settings = export_setting(profile_file, self.qsettings)
        # Check result
        self.assertTrue(os.path.exists(profile_file))
        self.assertEqual(inasafe_settings['key'], 'value')
        self.assertEqual(inasafe_settings['population_preference'],
                         generate_default_profile())
        # Import
        read_setting = import_setting(profile_file, self.qsettings)
        self.assertDictEqual(inasafe_settings, read_setting)
        self.assertDictEqual(original_settings, read_setting)
Esempio n. 5
0
    def test_get_displacement_rate_and_affected_with_qsetting(self):
        """Test for get_displacement_rate and is_affected with QSettings."""
        # Create custom qsettings
        qsettings = QSettings(INASAFE_TEST)
        qsettings.clear()
        # Save the default profile to qsettings
        default_profile = generate_default_profile()
        set_setting('population_preference', default_profile, qsettings)

        # Check the default one first
        default_profile = generate_default_profile()
        class_key = flood_hazard_classes['classes'][0]['key']
        value = is_affected(
            hazard_flood['key'],
            flood_hazard_classes['key'],
            class_key,
            qsettings)
        expected_value = default_profile[
            hazard_flood['key']][flood_hazard_classes['key']][class_key][
            'affected']
        self.assertEqual(value, expected_value)

        value = get_displacement_rate(
            hazard_flood['key'],
            flood_hazard_classes['key'],
            class_key,
            qsettings)
        expected_value = default_profile[
            hazard_flood['key']][flood_hazard_classes['key']][class_key][
            'displacement_rate']
        self.assertEqual(value, expected_value)

        # Change displacement rate
        new_displacement_rate = 1
        default_profile[
            hazard_flood['key']][flood_hazard_classes['key']][class_key][
            'displacement_rate'] = 1
        set_setting('population_preference', default_profile, qsettings)
        value = get_displacement_rate(
            hazard_flood['key'],
            flood_hazard_classes['key'],
            class_key,
            qsettings)
        self.assertEqual(value, new_displacement_rate)

        # Change affected value
        new_affected = False
        default_profile[
            hazard_flood['key']][flood_hazard_classes['key']][class_key][
            'affected'] = new_affected
        set_setting('population_preference', default_profile, qsettings)
        value = is_affected(
            hazard_flood['key'],
            flood_hazard_classes['key'],
            class_key,
            qsettings)
        self.assertEqual(value, new_affected)
        value = get_displacement_rate(
            hazard_flood['key'],
            flood_hazard_classes['key'],
            class_key,
            qsettings)
        # Should be 0 since it's not affected
        self.assertEqual(value, 0)
Esempio n. 6
0
class TestOptionsDialog(unittest.TestCase):

    """Test Options Dialog."""

    def setUp(self):
        """Fixture run before all tests."""
        self.qsetting = QSettings(INASAFE_TEST)
        self.qsetting.clear()

    def tearDown(self):
        """Fixture run after each test."""
        # Make sure it's empty
        self.qsetting.clear()

    def test_setup_dialog(self):
        """Test Setup Options Dialog."""
        dialog = OptionsDialog(
            parent=PARENT, iface=IFACE, qsetting=INASAFE_TEST)
        self.assertIsNotNone(dialog)

        # Check default values
        self.assertEqual(
            dialog.cbxVisibleLayersOnly.isChecked(),
            inasafe_default_settings['visibleLayersOnlyFlag'])
        self.assertEqual(
            dialog.cbxSetLayerNameFromTitle.isChecked(),
            inasafe_default_settings['set_layer_from_title_flag'])
        self.assertEqual(
            dialog.cbxZoomToImpact.isChecked(),
            inasafe_default_settings['setZoomToImpactFlag'])
        self.assertEqual(
            dialog.cbxHideExposure.isChecked(),
            inasafe_default_settings['setHideExposureFlag'])
        self.assertEqual(
            dialog.cbxUseSelectedFeaturesOnly.isChecked(),
            inasafe_default_settings['useSelectedFeaturesOnly'])
        self.assertEqual(
            dialog.leKeywordCachePath.text(),
            inasafe_default_settings['keywordCachePath'])
        self.assertEqual(
            dialog.template_warning_checkbox.isChecked(),
            inasafe_default_settings['template_warning_verbose'])
        self.assertEqual(
            dialog.organisation_on_dock_checkbox.isChecked(),
            inasafe_default_settings['showOrganisationLogoInDockFlag'])
        self.assertEqual(
            dialog.cbxDevMode.isChecked(),
            inasafe_default_settings['developer_mode'])

        self.assertEqual(
            dialog.leNorthArrowPath.text(), default_north_arrow_path())
        self.assertEqual(
            dialog.organisation_logo_path_line_edit.text(),
            supporters_logo_path())
        self.assertEqual(dialog.leReportTemplatePath.text(), '')
        self.assertEqual(dialog.txtDisclaimer.toPlainText(), disclaimer())
        self.assertEqual(
            dialog.leUserDirectoryPath.text(), temp_dir('impacts'))

        self.assertEqual(
            dialog.organisation_line_edit.text(),
            inasafe_default_settings['ISO19115_ORGANIZATION'])
        self.assertEqual(
            dialog.website_line_edit.text(),
            inasafe_default_settings['ISO19115_URL'])
        self.assertEqual(
            dialog.email_line_edit.text(),
            inasafe_default_settings['ISO19115_EMAIL'])
        self.assertEqual(
            dialog.license_line_edit.text(),
            inasafe_default_settings['ISO19115_LICENSE'])

    def test_update_settings(self):
        """Test update InaSAFE Option works."""
        # Create new option dialog
        dialog = OptionsDialog(
            parent=PARENT, iface=IFACE, qsetting=INASAFE_TEST)

        # Update some state
        new_state = not inasafe_default_settings['visibleLayersOnlyFlag']
        dialog.cbxVisibleLayersOnly.setChecked(new_state)

        new_organization = 'Super Organization'
        dialog.organisation_line_edit.setText(new_organization)

        # Accept the dialog
        dialog.accept()

        # Check the value in QSettings
        # Next two lines a hack because windows qsettings returns a string
        # rather than a bool...TS
        value = self.qsetting.value('inasafe/visibleLayersOnlyFlag')
        if value == 'false':
            value = False
        if value == 'true':
            value = True
        self.assertEqual(
            new_state, value)
        self.assertEqual(
            new_organization,
            self.qsetting.value('inasafe/ISO19115_ORGANIZATION'))

        # Open the options dialog
        dialog = OptionsDialog(
            iface=IFACE, parent=PARENT, qsetting=INASAFE_TEST)

        # Check the state of the dialog after save the settings
        self.assertEqual(new_state, dialog.cbxVisibleLayersOnly.isChecked())
        self.assertEqual(
            new_organization, dialog.organisation_line_edit.text())

    def test_mode(self):
        """Test for checking that the state is correct for the mode.

        If your test is failed, perhaps one the following is the cause:
        1. You add / remove tab in the options.
        2. You rename the tab's name.
        3. The function show_welcome_dialog or show_option_dialog is changed
        """
        # Welcome mode
        dialog = OptionsDialog(parent=PARENT, iface=IFACE)
        dialog.show_welcome_dialog()

        expected_tabs = [
            dialog.welcome_tab,
            dialog.organisation_profile_tab,
            dialog.preference_tab
        ]

        message = 'Tab count should be %d in welcome dialog.' % len(
            expected_tabs)
        self.assertEqual(dialog.tabWidget.count(), len(expected_tabs), message)

        message = 'Current tab index should be 0.'
        self.assertEqual(dialog.tabWidget.currentIndex(), 0, message)

        for index, expected_tab in enumerate(expected_tabs):
            dialog.tabWidget.setCurrentIndex(index)
            message = 'Current tab should be %s.' % expected_tab.objectName()
            current_tab = dialog.tabWidget.currentWidget()
            self.assertEqual(current_tab, expected_tab, message)

        # Usual option mode
        dialog = OptionsDialog(parent=PARENT, iface=IFACE)
        dialog.show_option_dialog()

        expected_tabs = [
            dialog.organisation_profile_tab,
            dialog.preference_tab,
            dialog.gis_environment_tab,
            dialog.earthquake_tab,
            dialog.template_option_tab,
            dialog.demographic_defaults_tab,
            dialog.advanced_tab
        ]

        message = 'Tab count should be %d in welcome dialog.' % len(
            expected_tabs)
        self.assertEqual(dialog.tabWidget.count(), len(expected_tabs), message)

        message = 'Current tab index should be 0.'
        self.assertEqual(dialog.tabWidget.currentIndex(), 0, message)

        for index, expected_tab in enumerate(expected_tabs):
            dialog.tabWidget.setCurrentIndex(index)
            message = 'Current tab should be %s.' % expected_tab.objectName()
            current_tab = dialog.tabWidget.currentWidget()
            self.assertEqual(current_tab, expected_tab, message)
Esempio n. 7
0
class TestOptionsDialog(unittest.TestCase):
    """Test Options Dialog."""
    def setUp(self):
        """Fixture run before all tests."""
        self.qsetting = QSettings(INASAFE_TEST)
        self.qsetting.clear()

    def tearDown(self):
        """Fixture run after each test."""
        # Make sure it's empty
        self.qsetting.clear()

    def test_setup_dialog(self):
        """Test Setup Options Dialog."""
        dialog = OptionsDialog(parent=PARENT,
                               iface=IFACE,
                               qsetting=INASAFE_TEST)
        self.assertIsNotNone(dialog)

        # Check default values
        self.assertEqual(dialog.cbxVisibleLayersOnly.isChecked(),
                         inasafe_default_settings['visibleLayersOnlyFlag'])
        self.assertEqual(dialog.cbxSetLayerNameFromTitle.isChecked(),
                         inasafe_default_settings['set_layer_from_title_flag'])
        self.assertEqual(dialog.cbxZoomToImpact.isChecked(),
                         inasafe_default_settings['setZoomToImpactFlag'])
        self.assertEqual(dialog.cbxHideExposure.isChecked(),
                         inasafe_default_settings['setHideExposureFlag'])
        self.assertEqual(dialog.cbxUseSelectedFeaturesOnly.isChecked(),
                         inasafe_default_settings['useSelectedFeaturesOnly'])
        self.assertEqual(dialog.leKeywordCachePath.text(),
                         inasafe_default_settings['keywordCachePath'])
        self.assertEqual(dialog.template_warning_checkbox.isChecked(),
                         inasafe_default_settings['template_warning_verbose'])
        self.assertEqual(
            dialog.organisation_on_dock_checkbox.isChecked(),
            inasafe_default_settings['showOrganisationLogoInDockFlag'])
        self.assertEqual(dialog.cbxDevMode.isChecked(),
                         inasafe_default_settings['developer_mode'])

        self.assertEqual(dialog.leNorthArrowPath.text(),
                         default_north_arrow_path())
        self.assertEqual(dialog.organisation_logo_path_line_edit.text(),
                         supporters_logo_path())
        self.assertEqual(dialog.leReportTemplatePath.text(), '')
        self.assertEqual(dialog.txtDisclaimer.toPlainText(), disclaimer())
        self.assertEqual(dialog.leUserDirectoryPath.text(),
                         temp_dir('impacts'))

        self.assertEqual(dialog.organisation_line_edit.text(),
                         inasafe_default_settings['ISO19115_ORGANIZATION'])
        self.assertEqual(dialog.website_line_edit.text(),
                         inasafe_default_settings['ISO19115_URL'])
        self.assertEqual(dialog.email_line_edit.text(),
                         inasafe_default_settings['ISO19115_EMAIL'])
        self.assertEqual(dialog.license_line_edit.text(),
                         inasafe_default_settings['ISO19115_LICENSE'])

    def test_update_settings(self):
        """Test update InaSAFE Option works."""
        # Create new option dialog
        dialog = OptionsDialog(parent=PARENT,
                               iface=IFACE,
                               qsetting=INASAFE_TEST)

        # Update some state
        new_state = not inasafe_default_settings['visibleLayersOnlyFlag']
        dialog.cbxVisibleLayersOnly.setChecked(new_state)

        new_organization = 'Super Organization'
        dialog.organisation_line_edit.setText(new_organization)

        # Accept the dialog
        dialog.accept()

        # Check the value in QSettings
        # Next two lines a hack because windows qsettings returns a string
        # rather than a bool...TS
        value = self.qsetting.value('inasafe/visibleLayersOnlyFlag')
        if value == 'false':
            value = False
        if value == 'true':
            value = True
        self.assertEqual(new_state, value)
        self.assertEqual(new_organization,
                         self.qsetting.value('inasafe/ISO19115_ORGANIZATION'))

        # Open the options dialog
        dialog = OptionsDialog(iface=IFACE,
                               parent=PARENT,
                               qsetting=INASAFE_TEST)

        # Check the state of the dialog after save the settings
        self.assertEqual(new_state, dialog.cbxVisibleLayersOnly.isChecked())
        self.assertEqual(new_organization,
                         dialog.organisation_line_edit.text())

    def test_mode(self):
        """Test for checking that the state is correct for the mode.

        If your test is failed, perhaps one the following is the cause:
        1. You add / remove tab in the options.
        2. You rename the tab's name.
        3. The function show_welcome_dialog or show_option_dialog is changed
        """
        # Welcome mode
        dialog = OptionsDialog(parent=PARENT, iface=IFACE)
        dialog.show_welcome_dialog()

        expected_tabs = [
            dialog.welcome_tab, dialog.organisation_profile_tab,
            dialog.preference_tab
        ]

        message = 'Tab count should be %d in welcome dialog.' % len(
            expected_tabs)
        self.assertEqual(dialog.tabWidget.count(), len(expected_tabs), message)

        message = 'Current tab index should be 0.'
        self.assertEqual(dialog.tabWidget.currentIndex(), 0, message)

        for index, expected_tab in enumerate(expected_tabs):
            dialog.tabWidget.setCurrentIndex(index)
            message = 'Current tab should be %s.' % expected_tab.objectName()
            current_tab = dialog.tabWidget.currentWidget()
            self.assertEqual(current_tab, expected_tab, message)

        # Usual option mode
        dialog = OptionsDialog(parent=PARENT, iface=IFACE)
        dialog.show_option_dialog()

        expected_tabs = [
            dialog.organisation_profile_tab, dialog.preference_tab,
            dialog.gis_environment_tab, dialog.earthquake_tab,
            dialog.template_option_tab, dialog.demographic_defaults_tab,
            dialog.advanced_tab
        ]

        message = 'Tab count should be %d in welcome dialog.' % len(
            expected_tabs)
        self.assertEqual(dialog.tabWidget.count(), len(expected_tabs), message)

        message = 'Current tab index should be 0.'
        self.assertEqual(dialog.tabWidget.currentIndex(), 0, message)

        for index, expected_tab in enumerate(expected_tabs):
            dialog.tabWidget.setCurrentIndex(index)
            message = 'Current tab should be %s.' % expected_tab.objectName()
            current_tab = dialog.tabWidget.currentWidget()
            self.assertEqual(current_tab, expected_tab, message)
Esempio n. 8
0
class TestSettings(unittest.TestCase):
    """Test Settings."""

    def setUp(self):
        """Fixture run before all tests."""
        self.qsettings = QSettings(INASAFE_TEST)
        self.qsettings.clear()

    def tearDown(self):
        """Fixture run after each test."""
        # Make sure it's empty
        self.qsettings.clear()

    def test_read_write_setting(self):
        """Test read and write setting."""
        # General Setting
        set_general_setting('key', 'value', self.qsettings)
        self.assertEqual(
            'value', general_setting('key', qsettings=self.qsettings))
        delete_general_setting('key', qsettings=self.qsettings)
        self.assertEqual('default', general_setting(
            'key', default='default', qsettings=self.qsettings))

        set_general_setting('key', 'True', self.qsettings)
        self.assertEqual(
            'True',
            general_setting(
                'key', qsettings=self.qsettings, expected_type=str))
        self.assertEqual(
            True,
            general_setting(
                'key', qsettings=self.qsettings, expected_type=bool))
        delete_general_setting('key', qsettings=self.qsettings)
        self.assertEqual('default', general_setting(
            'key', default='default', qsettings=self.qsettings))

        set_general_setting('key', 'false', self.qsettings)
        self.assertEqual(
            'false',
            general_setting(
                'key', qsettings=self.qsettings, expected_type=str))
        self.assertEqual(
            False,
            general_setting(
                'key', qsettings=self.qsettings, expected_type=bool))
        delete_general_setting('key', qsettings=self.qsettings)
        self.assertEqual('default', general_setting(
            'key', default='default', qsettings=self.qsettings))

        # Under InaSAFE scope
        set_setting('key', 'value', self.qsettings)
        self.assertEqual('value', setting('key', qsettings=self.qsettings))
        delete_setting('key', qsettings=self.qsettings)
        self.assertEqual('default', setting(
            'key', default='default', qsettings=self.qsettings))

        # Using InaSAFE setting default
        key = 'developer_mode'
        actual_value = inasafe_default_settings.get(key)
        self.assertEqual(actual_value, setting(key, qsettings=self.qsettings))

    def test_read_write_dictionary(self):
        """Test for reading and writing dictionary in QSettings."""
        dictionary = {
            'a': 'a',
            'b': 1,
            'c': {
                'd': True,
                'e': {
                    'f': 1.0,
                    'g': 2
                }
            }
        }
        set_setting('key', dictionary, self.qsettings)
        value = setting('key', qsettings=self.qsettings)
        self.assertDictEqual(dictionary, value)

        profile_dictionary = generate_default_profile()
        set_setting(
            'population_preference',
            profile_dictionary,
            self.qsettings)
        value = setting('population_preference', qsettings=self.qsettings)
        self.assertDictEqual(profile_dictionary, value)

    def test_export_import_setting(self):
        """Test for export_setting method."""
        profile_file = unique_filename(
            suffix='.json', dir='population_preference')
        original_settings = {
            'key': 'value',
            'key_bool': True,
            'population_preference': generate_default_profile(),
            'key_int': 1,
            'key_float': 2.0
        }
        # Write
        for key, value in list(original_settings.items()):
            set_setting(key, value, self.qsettings)
        # Export
        inasafe_settings = export_setting(profile_file, self.qsettings)
        # Check result
        self.assertTrue(os.path.exists(profile_file))
        self.assertEqual(inasafe_settings['key'], 'value')
        self.assertEqual(
            inasafe_settings['population_preference'],
            generate_default_profile())
        # Import
        read_setting = import_setting(profile_file, self.qsettings)
        self.assertDictEqual(inasafe_settings, read_setting)
        self.assertDictEqual(original_settings, read_setting)