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'
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)
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
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()
def test_get_owner(self): _path = '{}/psyhive/testing/owner_test.txt'.format( tempfile.gettempdir()) touch(_path) self.assertEqual(get_owner(_path), os.environ['USER'])