def _process_datadir_options(self, config: Dict[str, Any]) -> None: """ Extract information for sys.argv and load directory configurations --user-data, --datadir """ # Check exchange parameter here - otherwise `datadir` might be wrong. if 'exchange' in self.args and self.args['exchange']: config['exchange']['name'] = self.args['exchange'] logger.info(f"Using exchange {config['exchange']['name']}") if 'pair_whitelist' not in config['exchange']: config['exchange']['pair_whitelist'] = [] if 'user_data_dir' in self.args and self.args['user_data_dir']: config.update({'user_data_dir': self.args['user_data_dir']}) elif 'user_data_dir' not in config: # Default to cwd/user_data (legacy option ...) config.update({'user_data_dir': str(Path.cwd() / 'user_data')}) # reset to user_data_dir so this contains the absolute path. config['user_data_dir'] = create_userdata_dir(config['user_data_dir'], create_dir=False) logger.info('Using user-data directory: %s ...', config['user_data_dir']) config.update({ 'datadir': create_datadir(config, self.args.get('datadir', None)) }) logger.info('Using data directory: %s ...', config.get('datadir')) if self.args.get('exportfilename'): self._args_to_config( config, argname='exportfilename', logstring='Storing backtest results to {} ...') config['exportfilename'] = Path(config['exportfilename']) else: config['exportfilename'] = (config['user_data_dir'] / 'backtest_results')
def test_create_userdata_dir_exists(mocker, default_conf, caplog) -> None: mocker.patch.object(Path, "is_dir", MagicMock(return_value=True)) md = mocker.patch.object(Path, 'mkdir', MagicMock()) create_userdata_dir('/tmp/bar') assert md.call_count == 0