Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# Changelog
## 4.0.1
### Bugfixes
* Changed test_settings unit tests to use pytest's `tmp_path` fixture.

## 4.0.0

### Introduction
Expand Down
29 changes: 11 additions & 18 deletions podpac/core/test/test_settings.py
Original file line number Diff line number Diff line change
@@ -1,38 +1,31 @@
import os
import pytest

from podpac.core.settings import PodpacSettings

_SETTINGS_FILENAME = "settings.json"


class TestSettingsFile(object):
def tmp_dir_path(self):
basedir = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(basedir, ".__tmp__")
return path

def make_settings_tmp_dir(self):
path = self.tmp_dir_path()
@pytest.fixture
def settings_tmp_dir(self, tmp_path):
path = os.path.join(tmp_path, ".__tmp__")
os.mkdir(path) # intentionally fails if this folder already exists as it will be deleted
return path

def teardown_method(self):
path = self.tmp_dir_path()
yield path
try:
os.remove(os.path.join(path, _SETTINGS_FILENAME))
except OSError: # FileNotFoundError in py 3
pass

os.rmdir(path) # intentionally fails if anything else is in this folder

def test_settings_file_defaults_to_home_dir(self):
self.make_settings_tmp_dir() # so teardown method has something ot tear down
settings = PodpacSettings()
path = os.environ.get("XDG_CACHE_HOME", os.path.expanduser("~"))
assert settings.settings_path == os.path.join(path, ".config", "podpac", _SETTINGS_FILENAME)

def test_single_saved_setting_persists(self):
path = self.make_settings_tmp_dir()
def test_single_saved_setting_persists(self, settings_tmp_dir):
path = settings_tmp_dir

key = "key"
value = "value"
Expand All @@ -45,8 +38,8 @@ def test_single_saved_setting_persists(self):
new_settings.load(path=path)
assert new_settings[key] == value

def test_multiple_saved_settings_persist(self):
path = self.make_settings_tmp_dir()
def test_multiple_saved_settings_persist(self, settings_tmp_dir):
path = settings_tmp_dir

key1 = "key1"
value1 = "value1"
Expand All @@ -64,8 +57,8 @@ def test_multiple_saved_settings_persist(self):
assert new_settings[key1] == value1
assert new_settings[key2] == value2

def test_misconfigured_settings_file_fall_back_on_default(self):
path = self.make_settings_tmp_dir()
def test_misconfigured_settings_file_fall_back_on_default(self, settings_tmp_dir):
path = settings_tmp_dir

with open(os.path.join(path, _SETTINGS_FILENAME), "w") as f:
f.write("not proper json")
Expand Down
2 changes: 1 addition & 1 deletion podpac/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
##############
MAJOR = 4
MINOR = 0
HOTFIX = 0
HOTFIX = 1
##############


Expand Down
Loading