def test_gdal_config_accessers(): """Low level GDAL config access.""" assert get_gdal_config('foo') is None set_gdal_config('foo', 'bar') assert get_gdal_config('foo') == 'bar' del_gdal_config('foo') assert get_gdal_config('foo') is None
def test_env_defaults(gdalenv): """Test env defaults.""" env = rasterio.Env.from_defaults(foo='x') assert env.options['foo'] == 'x' assert not env.context_options with env: assert get_gdal_config('GTIFF_IMPLICIT_JPEG_OVR') is False assert get_gdal_config("RASTERIO_ENV") is True
def test_env_defaults(gdalenv): """Test env defaults.""" env = rasterio.Env(foo='x') assert env.options['foo'] == 'x' assert not env.context_options with env: assert get_gdal_config('CHECK_WITH_INVERT_PROJ') is True assert get_gdal_config('GTIFF_IMPLICIT_JPEG_OVR') is False assert get_gdal_config("I'M_ON_RASTERIO") is True
def test_gdal_config_accessors_no_normalize(): """Disables casting keys to upper case and normalizing values to boolean Python values. """ assert get_gdal_config('foo') is None set_gdal_config('foo', 'ON', normalize=False) assert get_gdal_config('foo', normalize=False) == 'ON' del_gdal_config('foo') assert get_gdal_config('foo') is None
def test_env_empty(gdalenv): """Empty env has no defaults""" env = rasterio.Env(foo='x') assert env.options['foo'] == 'x' assert not env.context_options with env: assert get_gdal_config('CHECK_WITH_INVERT_PROJ') is None assert get_gdal_config('GTIFF_IMPLICIT_JPEG_OVR') is None assert get_gdal_config("RASTERIO_ENV") is None
def test_env_defaults(gdalenv): """Test env defaults.""" env = rasterio.Env.from_defaults(foo='x') assert env.options['foo'] == 'x' assert not env.context_options with env: assert get_gdal_config('CHECK_WITH_INVERT_PROJ') is True assert get_gdal_config('GTIFF_IMPLICIT_JPEG_OVR') is False assert get_gdal_config("RASTERIO_ENV") is True
def test_env_accessors(gdalenv): """High level GDAL env access.""" defenv() setenv(foo='1', bar='2') expected = default_options.copy() expected.update({'foo': '1', 'bar': '2'}) assert getenv() == rasterio.env._env.options assert getenv() == expected assert get_gdal_config('foo') == '1' assert get_gdal_config('bar') == '2' delenv() with pytest.raises(EnvError): getenv() assert get_gdal_config('foo') is None assert get_gdal_config('bar') is None
def test_gdal_cachemax(): """``GDAL_CACHEMAX`` is a special case.""" original_cachemax = get_gdal_config('GDAL_CACHEMAX') assert original_cachemax != 4321 # GDALSetCacheMax() has a limit of somewhere between 2 and 3 GB. # We use GDALSetCacheMax64(), so use a value that is outside the 32 bit # range to verify it is not being truncated. set_gdal_config('GDAL_CACHEMAX', 4321) assert get_gdal_config('GDAL_CACHEMAX', 4321) == 4321 # On first read the number will be in bytes. Drop to MB if necessary. try: set_gdal_config('GDAL_CACHEMAX', original_cachemax) except OverflowError: set_gdal_config('GDAL_CACHEMAX', int(original_cachemax / 1000000))
def test_env_accessors(gdalenv): """High level GDAL env access.""" defenv() setenv(foo='1', bar='2') expected = default_options.copy() expected.update({'foo': '1', 'bar': '2'}) assert getenv() == rasterio.env.local._env.options assert getenv() == expected assert get_gdal_config('foo') == 1 assert get_gdal_config('bar') == 2 delenv() with pytest.raises(EnvError): getenv() assert get_gdal_config('foo') is None assert get_gdal_config('bar') is None
def __enter__(self): log.debug("Entering env context: %r", self) # No parent Rasterio environment exists. if local._env is None: log.debug("Starting outermost env") self._has_parent_env = False # See note directly above where _discovered_options is globally # defined. This MUST happen before calling 'defenv()'. local._discovered_options = {} # Don't want to reinstate the "RASTERIO_ENV" option. probe_env = {k for k in self.options.keys() if k != "RASTERIO_ENV"} for key in probe_env: val = get_gdal_config(key, normalize=False) if val is not None: local._discovered_options[key] = val log.debug("Discovered option: %s=%s", key, val) defenv(**self.options) self.context_options = {} else: self._has_parent_env = True self.context_options = getenv() setenv(**self.options) if self.can_credentialize_on_enter(): self.credentialize() log.debug("Entered env context: %r", self) return self
def __enter__(self): global _env global _discovered_options log.debug("Entering env context: %r", self) # No parent Rasterio environment exists. if _env is None: logging.debug("Starting outermost env") self._has_parent_env = False # See note directly above where _discovered_options is globally # defined. This MUST happen before calling 'defenv()'. _discovered_options = {} # Don't want to reinstate the "I'M_ON_RASTERIO" option. probe_env = {k for k in default_options if k != "I'M_ON_RASTERIO"} probe_env |= set(self.options.keys()) for key in probe_env: val = get_gdal_config(key, normalize=False) if val is not None: _discovered_options[key] = val logging.debug("Discovered option: %s=%s", key, val) defenv() self.context_options = {} else: self._has_parent_env = True self.context_options = getenv() setenv(**self.options) log.debug("Entered env context: %r", self) return self
def __enter__(self): log.debug("Entering env context: %r", self) # No parent Rasterio environment exists. if local._env is None: log.debug("Starting outermost env") self._has_parent_env = False # See note directly above where _discovered_options is globally # defined. This MUST happen before calling 'defenv()'. local._discovered_options = {} # Don't want to reinstate the "RASTERIO_ENV" option. probe_env = {k for k in default_options if k != "RASTERIO_ENV"} probe_env |= set(self.options.keys()) for key in probe_env: val = get_gdal_config(key, normalize=False) if val is not None: local._discovered_options[key] = val log.debug("Discovered option: %s=%s", key, val) defenv(**self.options) self.context_options = {} else: self._has_parent_env = True self.context_options = getenv() setenv(**self.options) if self.can_credentialize_on_enter(): self.credentialize() log.debug("Entered env context: %r", self) return self
def test_env_accessors(gdalenv): """High level GDAL env access.""" defenv() setenv(foo='1', bar='2') expected = {'foo': '1', 'bar': '2'} items = getenv() assert items == rasterio.env.local._env.options # Comparison below requires removal of GDAL_DATA. items.pop('GDAL_DATA', None) assert items == expected assert get_gdal_config('foo') == 1 assert get_gdal_config('bar') == 2 delenv() with pytest.raises(EnvError): getenv() assert get_gdal_config('foo') is None assert get_gdal_config('bar') is None
def test_env_discovery(key, val): """When passing options to ``rasterio.Env()`` Rasterio first checks to see if they were set in the environment and reinstates on exit. The discovered environment should only be reinstated when the outermost environment exits. It's really important that this test use an environment default. """ assert rasterio.env.local._discovered_options is None, \ "Something has gone horribly wrong." try: # This should persist when all other environment managers exit. set_gdal_config(key, val) # Start an environment and overwrite the value that should persist with rasterio.Env(**{key: True}): assert get_gdal_config(key) is True assert rasterio.env.local._discovered_options == {key: val} # Start another nested environment, again overwriting the value # that should persist with rasterio.Env(**{key: False}): assert rasterio.env.local._discovered_options == {key: val} assert get_gdal_config(key) is False # Ensure the outer state is restored. assert rasterio.env.local._discovered_options == {key: val} assert get_gdal_config(key) is True # Ensure the discovered value remains unchanged. assert rasterio.env.local._discovered_options is None assert get_gdal_config(key, normalize=False) == val # Leaving this option in the GDAL environment could cause a problem # for other tests. finally: del_gdal_config(key)
def test_env_discovery(key, val): """When passing options to ``rasterio.Env()`` Rasterio first checks to see if they were set in the environment and reinstates on exit. The discovered environment should only be reinstated when the outermost environment exits. It's really important that this test use an environment default. """ assert rasterio.env._discovered_options is None, \ "Something has gone horribly wrong." try: # This should persist when all other environment managers exit. set_gdal_config(key, val) # Start an environment and overwrite the value that should persist with rasterio.Env(**{key: True}): assert get_gdal_config(key) is True assert rasterio.env._discovered_options == {key: val} # Start another nested environment, again overwriting the value # that should persist with rasterio.Env(**{key: False}): assert rasterio.env._discovered_options == {key: val} assert get_gdal_config(key) is False # Ensure the outer state is restored. assert rasterio.env._discovered_options == {key: val} assert get_gdal_config(key) is True # Ensure the discovered value remains unchanged. assert rasterio.env._discovered_options is None assert get_gdal_config(key, normalize=False) == val # Leaving this option in the GDAL environment could cause a problem # for other tests. finally: del_gdal_config(key)
def test_gdal_config_accessors_capitalization(): """GDAL normalizes config names to upper case so Rasterio does not need to do it on its own. This test serves as a canary in case GDAL changes its behavior, which is an important part of reinstating discovered environment variables when ``rasterio.Env()`` starts. GDAL does not alter config values. """ assert get_gdal_config('foo') is None assert get_gdal_config('FOO') is None set_gdal_config('foo', 'bar') assert get_gdal_config('foo') == 'bar' assert get_gdal_config('FOO') == 'bar' del_gdal_config('foo') assert get_gdal_config('foo') is None assert get_gdal_config('FOO') is None set_gdal_config('upper', 'UPPER') assert get_gdal_config('upper') == 'UPPER' del_gdal_config('upper')
async def home1(): """Works and should return FALSE.""" with rasterio.Env(GDAL_DISABLE_READDIR_ON_OPEN="FALSE"): res = get_gdal_config("GDAL_DISABLE_READDIR_ON_OPEN") return {"env": res}
async def home1(): """Works and should return FALSE.""" res = get_gdal_config("GDAL_DISABLE_READDIR_ON_OPEN") return {"env": res}
def _check_defaults(): for key in Env.default_options().keys(): assert get_gdal_config(key) is None
def f(r): return get_gdal_config("GDAL_DISABLE_READDIR_ON_OPEN")
def _check_defaults(): for key in default_options.keys(): assert get_gdal_config(key) is None