Esempio n. 1
0
    def test_find(self):

        _test_dir = '{}/psyhive/testing/blah'.format(tempfile.gettempdir())
        _test_file = abs_path('{}/test.txt'.format(_test_dir))
        if os.path.exists(_test_dir):
            shutil.rmtree(_test_dir)
        touch(_test_file)
        assert get_single(find(_test_dir)) == _test_file
        assert get_single(find(_test_dir, full_path=False)) == 'test.txt'
Esempio n. 2
0
    def settings(self):
        """Get settings object.

        Returns:
            (QSettings): settings
        """
        _name = type(self).__name__.strip('_')
        _settings_file = abs_path('{}/{}.ini'.format(SETTINGS_DIR, _name))
        touch(_settings_file)  # Check settings writable
        return QtCore.QSettings(_settings_file, QtCore.QSettings.IniFormat)
Esempio n. 3
0
    def test_find(self):

        # Test depth flag
        _test_dir = '{}/testing'.format(tempfile.gettempdir())
        touch(_test_dir+'/test.txt')
        touch(_test_dir+'/BLAH/test.txt')
        touch(_test_dir+'/BLAH/BLEE/test.txt')
        assert len(find(_test_dir, type_='f', depth=1)) == 1
        assert len(find(_test_dir, type_='f', depth=2)) == 2
        assert len(find(_test_dir, type_='f', depth=3)) == 3
Esempio n. 4
0
    def __init__(self,
                 ui_file,
                 catch_error_=True,
                 track_usage_=True,
                 dialog_stack_key=None,
                 connect_widgets=True,
                 show=True,
                 parent=None,
                 save_settings=True,
                 localise_imgs=False,
                 disable_btns_on_exec=True,
                 verbose=0):
        """Constructor.

        Args:
            ui_file (str): path to ui file
            catch_error_ (bool): apply catch error decorator to callbacks
            track_usage_ (bool): apply track usage decorator to callbacks
            dialog_stack_key (str): override dialog stack key
            connect_widgets (bool): connect widget callbacks
            show (bool): show interface
            parent (QDialog): parent dialog
            save_settings (bool): read/write settings on open/close
            localise_imgs (bool): map images to match current pipeline
            disable_btns_on_exec (bool): disable push buttons while
                they are being executed - can interfere with
                enabling/disabling buttons on the fly
            verbose (int): print process data
        """
        from psyhive import host

        if not os.path.exists(ui_file):
            raise OSError('Missing ui file ' + ui_file)

        # Remove any existing widgets
        _dialog_stack_key = dialog_stack_key or abs_path(ui_file)
        if _dialog_stack_key in sys.QT_DIALOG_STACK:
            sys.QT_DIALOG_STACK[_dialog_stack_key].delete()
        sys.QT_DIALOG_STACK[_dialog_stack_key] = self

        _args = [parent] if parent else []
        super(HUiDialog, self).__init__(*_args)

        # Load ui file
        _loader = get_ui_loader()
        assert os.path.exists(ui_file)
        _ui_file = ui_file
        if localise_imgs:
            _ui_file = _localise_ui_imgs(_ui_file)
        self.ui = _loader.load(_ui_file, self)
        self._is_widget_ui = type(self.ui) is QtWidgets.QWidget
        if self._is_widget_ui:
            _layout = self.ui.layout()
            if _layout:  # Fix maya margins override
                _layout.setContentsMargins(9, 9, 9, 9)
            self.ui.closeEvent = self.closeEvent
            self.setWindowTitle(self.ui.windowTitle())
        else:
            self.ui.rejected.connect(self.closeEvent)
            if (dev_mode() and isinstance(self.ui, QtWidgets.QDialog)
                    and host.NAME == 'maya'):
                dprint("WARNING: QDialog is unstable in maya")

        # Setup widgets
        self.widgets = self.read_widgets()
        if connect_widgets:
            self.connect_widgets(catch_error_=catch_error_,
                                 track_usage_=track_usage_,
                                 disable_btns_on_exec=disable_btns_on_exec,
                                 verbose=verbose)

        # Handle settings
        if save_settings:
            _settings_file = abs_path('{}/{}.ini'.format(
                SETTINGS_DIR,
                File(ui_file).basename))
            touch(_settings_file)  # Check settings writable
            self.settings = QtCore.QSettings(_settings_file,
                                             QtCore.QSettings.IniFormat)
            self.read_settings(verbose=verbose)
        else:
            self.settings = None

        self.redraw_ui()

        if show:
            self.show() if self._is_widget_ui else self.ui.show()
Esempio n. 5
0
    def test_get_owner(self):

        _path = '{}/psyhive/testing/owner_test.txt'.format(
            tempfile.gettempdir())
        touch(_path)
        self.assertEqual(get_owner(_path), os.environ['USER'])