def test_get(): # get before init with pytest.raises(peeringdb.BackendError): B = peeringdb.get_backend() peeringdb.initialize_backend('_mock') B = peeringdb.get_backend()
def __init__(self, cfg=None, **kwargs): """ Arguments: - cfg <dict>: dict of complete config options (see config.ClientSchema), by default loads from DEFAULT_CONFIG_DIR - url<str>: URL to connect to - user<str>: username to connect to api with - password<str>: password - timeout<float>: timeout to fail after """ if cfg is None: cfg = config.load_config() self.config = cfg orm_config = cfg['orm'] orm_name = orm_config['backend'] if not peeringdb.backend_initialized(): peeringdb.initialize_backend(orm_name, **orm_config) sync_config = cfg['sync'] # override config with kwargs munge.util.recursive_update(sync_config, kwargs) self._fetcher = Fetcher(**sync_config) self._updater = Updater(self._fetcher, **sync_config) self.update_all = self._updater.update_all self.update = self._updater.update self.update_where = self._updater.update_where tag_attrs = { res.tag: _Query(self, res) for res in resource.all_resources() } self._Tags = type('_Tags', (), tag_attrs) self.tags = self._Tags()
def __init__(self, cfg=None, **kwargs): """ Arguments: - cfg <dict>: dict of complete config options (see config.ClientSchema), by default loads from DEFAULT_CONFIG_DIR - url<str>: URL to connect to - user<str>: username to connect to api with - password<str>: password - timeout<float>: timeout to fail after """ if cfg is None: cfg = config.load_config() self.config = cfg orm_config = cfg["orm"] orm_name = orm_config["backend"] if not backend_initialized(): initialize_backend(orm_name, **orm_config) sync_config = cfg["sync"] # override config with kwargs munge.util.recursive_update(sync_config, kwargs) self._fetcher = Fetcher(**sync_config) self._updater = Updater(self._fetcher, **sync_config) self.update_all = self._updater.update_all self.update = self._updater.update self.update_where = self._updater.update_where tag_res = OrderedDict( [(res.tag, _Query(self, res)) for res in resource.all_resources()] ) tag_attrs = { **tag_res, **{ "keys": lambda self: list(tag_res.keys()), "all": lambda self: list(tag_res.values()), }, } self._Tags = type("_Tags", (), tag_attrs) self.tags = self._Tags()
def sync(self): self.log_info(f"Syncing from {self.pdburl}") settings.USE_TZ = False config = { "sync": { "url": self.pdburl, "user": self.username, "password": self.password, "strip_tz": 1, "timeout": 0, "only": [], }, "orm": { "database": settings.DATABASES["default"], "backend": "django_peeringdb", "migrate": True, }, } initialize_backend("django_peeringdb", **config["orm"]) client = Client(config, **config) client.update_all(resource.all_resources())
def test_init(): # bad name with pytest.raises(Exception): # todo peeringdb.initialize_backend('_bad') # ok peeringdb.initialize_backend('_mock') # double init with pytest.raises(peeringdb.BackendError): peeringdb.initialize_backend('_mock')