curds: Create a single place to get a path to a data file
It's useful to have a way to override where data gets placed in the filesystem so we don't accidentally clobber production data with test data while running tests. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
0705f86d81
commit
2c022163ad
2
Makefile
2
Makefile
|
@ -8,4 +8,4 @@ clean:
|
|||
.PHONY: trier
|
||||
trier:
|
||||
python trier/generate_tracks.py
|
||||
python -m unittest discover -v curds/
|
||||
EMMENTAL_TESTING=1 python -m unittest discover -v curds/
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
# Copyright 2019 (c) Anna Schumaker.
|
||||
import os
|
||||
import xdg.BaseDirectory
|
||||
|
||||
__resource = "emmental"
|
||||
if os.environ.get("EMMENTAL_TESTING"):
|
||||
__resource = "emmental-testing"
|
||||
|
||||
emmental_data = xdg.BaseDirectory.save_data_path(__resource)
|
||||
|
||||
def data_file_path(filename):
|
||||
return os.path.join(emmental_data, filename)
|
|
@ -0,0 +1,31 @@
|
|||
# Copyright 2019 (c) Anna Schumaker.
|
||||
import data
|
||||
import os
|
||||
import unittest
|
||||
import xdg.BaseDirectory
|
||||
|
||||
xdg_data_home = xdg.BaseDirectory.xdg_data_home
|
||||
testing_data = os.path.join(xdg_data_home, "emmental-testing")
|
||||
|
||||
class Test:
|
||||
def __init__(self):
|
||||
self.one = 1
|
||||
self.two = 2
|
||||
self.list = [ 3, 4, 5]
|
||||
|
||||
|
||||
class TestDataModule(unittest.TestCase):
|
||||
def setUp(self):
|
||||
path = os.path.join(testing_data, "test")
|
||||
if os.path.exists(path):
|
||||
os.remove(path)
|
||||
|
||||
def test_dir(self):
|
||||
self.assertEqual(data.emmental_data, testing_data)
|
||||
self.assertTrue(os.path.exists(testing_data))
|
||||
self.assertTrue(os.path.isdir(testing_data))
|
||||
|
||||
def test_data_file_path(self):
|
||||
path = os.path.join(testing_data, "test")
|
||||
self.assertEqual(data.data_file_path("test"), path)
|
||||
self.assertFalse(os.path.exists(path))
|
Loading…
Reference in New Issue