def test_get_default_worker_with_os_env(mock_kafka_consumer, mock_docker_client): try: os.environ['CODEPACK_CONFIG_DIR'] = 'config' os.environ['CODEPACK_CONFIG_PATH'] = 'sample.ini' worker = Default.get_employee('worker') assert isinstance(worker, Worker) arg_list = mock_kafka_consumer.call_args_list assert len(arg_list) == 1 args, kwargs = arg_list[0] assert kwargs.get('bootstrap_servers', '') == '?:9092,?:9092,?:9092' assert isinstance(kwargs.get('value_deserializer', ''), Callable) assert len(args) == 1 and args[0] == 'codepack' assert hasattr(worker.messenger, 'consumer') assert getattr(worker.messenger, 'consumer').session is mock_kafka_consumer() mock_docker_client.assert_called_once_with( base_url='unix://var/run/docker.sock') assert worker.docker_manager.docker.session == mock_docker_client() assert isinstance(worker.callback_service, CallbackService) assert isinstance(worker.logger, logging.Logger) assert worker.logger.name == 'worker-logger' assert hasattr(worker, 'script') and worker.script == 'run_snapshot.py' default_dir = Default.get_config_instance().get_default_config_dir() script_dir = os.path.join(default_dir, 'scripts') assert hasattr(worker, 'script_dir') and worker.script_dir == script_dir assert hasattr(worker, 'script_path') and worker.script_path == os.path.join( default_dir, 'scripts/run_snapshot.py') finally: os.environ.pop('CODEPACK_CONFIG_DIR', None) os.environ.pop('CODEPACK_CONFIG_PATH', None)
def test_get_default_docker_manager(mock_client): docker_manager = Default.get_docker_manager() mock_client.assert_called_once_with(base_url='unix://var/run/docker.sock') assert isinstance(docker_manager, DockerManager) default_dir = Default.get_config_instance().get_default_config_dir() assert docker_manager.path == os.path.join(default_dir, 'scripts') assert docker_manager.run_opt == {'dns': ['8.8.8.8'], 'auto_remove': True}
def test_default_get_storage_config(): Default(config_path='config/test.ini') assert len(Default.instances) == 0 config = Default.get_config_instance() storage_config = config.get_storage_config('worker') assert storage_config == { 'source': 'kafka', 'topic': 'test', 'kafka': { 'bootstrap_servers': 'localhost:9092' }, 'group_id': 'codepack_worker_test', 'interval': '5', 'supervisor': 'http://localhost:8000', 'script_path': 'scripts/run_snapshot.py', 'logger': 'worker-logger' }
def test_get_default_worker_without_os_env(mock_docker_client): worker = Default.get_employee('worker') assert isinstance(worker, Worker) assert isinstance(worker.messenger, MemoryMessenger) assert worker.messenger.topic == 'codepack' assert worker.supervisor is None mock_docker_client.assert_called_once_with( base_url='unix://var/run/docker.sock') assert worker.docker_manager.docker.session == mock_docker_client() assert isinstance(worker.callback_service, CallbackService) assert isinstance(worker.callback_service.storage, FileStorage) default_dir = Default.get_config_instance().get_default_config_dir() assert worker.callback_service.storage.path == os.path.join( default_dir, 'scripts') assert isinstance(worker.logger, logging.Logger) assert worker.logger.name == 'worker-logger' assert hasattr(worker, 'script') and worker.script == 'run_snapshot.py' assert hasattr(worker, 'script_dir') and worker.script_dir == os.path.join( default_dir, 'scripts') assert hasattr(worker, 'script_path') and worker.script_path == os.path.join( default_dir, 'scripts/run_snapshot.py')