class BaseWebTest(unittest.TestCase): initial_auth = ('Basic', ('brokername', '')) relative_to = os.path.dirname(__file__) def setUp(self): self.app = webtest.TestApp('config:tests.ini', relative_to=self.relative_to) self.app.RequestClass = PrefixedRequestClass self.db = DB(config) self.valid_params = ['inn', 'atc', 'inn2atc', 'atc2inn'] def tearDown(self): self.db.flushall()
def setUpClass(cls): cls.redis_process = subprocess.Popen( ['redis-server', '--port', str(cls.PORT), '--logfile /dev/null']) sleep(0.1) cls.db = DB(cache_config) cls.redis = StrictRedis(port=cls.PORT)
def __init__(self, config): self.config = config # Cache DB settings self.db = DB(self.config) logger.info( 'Caching backend: \'{}\', db name: \'{}\', host: \'{}\', port: \'{}\'' .format(self.db.backend, self.db.db_name, self.db.host, self.db.port), extra=journal_context({'MESSAGE_ID': BRIDGE_INFO}, {})) self.BASE_DIR = BASE_DIR self.INFINITY_LOOP = True self.time_update_at = string_time_to_datetime( self.config_get('time_update_at') or '05:30:00') self.delay = int(self.config_get('delay')) or 60 self.registry_delay = int(self.config_get('registry_delay')) or 60 self.json_files_delay = int(self.config_get('json_files_delay')) or 10 self.file_cleaner_delay = int( self.config_get('file_cleaner_delay')) or 10 self.cache_monitoring_delay = int( self.config_get('cache_monitoring_delay')) or 10 self.source_registry = self.config_get('source_registry') try: self.source_registry_proxy = self.config_get( 'source_registry_proxy') except (NoOptionError, KeyError): self.source_registry_proxy = None self._files_init() self.proxy_client = ProxyClient( host=self.config_get('proxy_host'), port=self.config_get('proxy_port'), version=self.config_get('proxy_version')) self.services_not_available = event.Event() self.services_not_available.set() self.registry = partial( Registry.spawn, source_registry=self.source_registry, source_registry_proxy=self.source_registry_proxy, time_update_at=self.time_update_at, delay=self.delay, registry_delay=self.registry_delay, services_not_available=self.services_not_available) self.json_former = partial( JsonFormer.spawn, db=self.db, delay=self.delay, json_files_delay=self.json_files_delay, cache_monitoring_delay=self.cache_monitoring_delay, services_not_available=self.services_not_available) self.sandbox_mode = os.environ.get('SANDBOX_MODE', 'False')
def setUp(self): self.db = DB(config) self.DATA_PATH = os.path.join(self.BASE_DIR, 'temp') if not os.path.exists(self.DATA_PATH): os.makedirs(self.DATA_PATH) with open(os.path.join(self.DATA_PATH, 'registry.xml'), 'w'): pass
def __init__(self, request): self.request = request self.DATA_PATH = os.path.join(BASE_DIR, 'data') db_config = { 'app:api': { 'cache_host': self.request.registry.settings.get('cache_host'), 'cache_port': self.request.registry.settings.get('cache_port'), 'cache_db_name': self.request.registry.settings.get('cache_db_name'), } } self.db = DB(db_config) self.valid_params = ['inn', 'atc', 'inn2atc', 'atc2inn']
class RegistryView(object): def __init__(self, request): self.request = request self.DATA_PATH = os.path.join(BASE_DIR, 'data') db_config = { 'app:api': { 'cache_host': self.request.registry.settings.get('cache_host'), 'cache_port': self.request.registry.settings.get('cache_port'), 'cache_db_name': self.request.registry.settings.get('cache_db_name'), } } self.db = DB(db_config) self.valid_params = ['inn', 'atc', 'inn2atc', 'atc2inn'] @view_config(request_method='GET', permission='registry') def get(self): param = self.request.matchdict.get('param') if param in self.valid_params: try: data = str_to_obj(self.db.get(param)) except ValueError: data = None logger.warn('Cache is empty!', extra=journal_context({'MESSAGE_ID': API_INFO}, {})) if data: response = Response(body=json.dumps(data), content_type='application/json', status=200) else: file_path = os.path.join(self.DATA_PATH, '{}.json'.format(param)) response = FileResponse(path=file_path, request=self.request, content_type='application/json') else: msg = 'URL parameter must be "inn.json", "atc.json", "inn2atc.json" or "atc2inn.json"' data = { 'success': False, 'error': True, 'message': 'URL parameter "{}" not valid. {}'.format(param, msg) } response = Response(body=json.dumps(data), content_type='application/json', status=400) return response
def setUp(self): self.app = webtest.TestApp('config:tests.ini', relative_to=self.relative_to) self.app.RequestClass = PrefixedRequestClass self.db = DB(config) self.valid_params = ['inn', 'atc', 'inn2atc', 'atc2inn']