def __init__(self, iface):
        """Constructor.

        :param iface: An interface instance that will be passed to this class
            which provides the hook by which you can manipulate the QGIS
            application at run time.
        :type iface: QgsInterface
        """
        # Save reference to the QGIS interface
        # and other elements
        self.iface = iface
        self.canvas = self.iface.mapCanvas()
        self.tree_view = self.iface.layerTreeView()
        # initialize plugin directory
        self.plugin_dir = os.path.dirname(__file__)
        # initialize locale
        locale = QSettings().value('locale/userLocale')[0:2]
        locale_path = os.path.join(
            self.plugin_dir,
            'i18n',
            'gison3dmap_{}.qm'.format(locale))

        if os.path.exists(locale_path):
            self.translator = QTranslator()
            self.translator.load(locale_path)

            if qVersion() > '4.3.3':
                QCoreApplication.installTranslator(self.translator)

        # Create the dialogs (after translation) and keep reference
        self.send_commands_dlg = gison3dmapDialog()
        self.config_dlg = configDialog()

        # Declare instance attributes
        self.actions = []
        self.menu = self.tr(u'&gison3dmap')

        self.toolbar = self.iface.addToolBar(u'gison3dmap')
        self.toolbar.setObjectName(u'gison3dmap')

        # Save reference from shared configuration instance
        self.cfg = config.shared
 def setUp(self):
     """Runs before each test."""
     self.dialog = gison3dmapDialog(None)