-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathtest_csvpaths_cache.py
More file actions
51 lines (45 loc) · 1.59 KB
/
Copy pathtest_csvpaths_cache.py
File metadata and controls
51 lines (45 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import unittest
import os
from csvpath.util.nos import Nos
from csvpath.util.cache import Cache
from tests.csvpaths.builder import Builder
PATH = f"tests{os.sep}csvpaths{os.sep}test_resources{os.sep}test.csv"
class TestCsvPathsCache(unittest.TestCase):
def test_csvpaths_cache_name(self) -> None:
paths = Builder().build()
cache = Cache(paths)
name1 = cache.get_cache_name(PATH)
name2 = cache.get_cache_name(PATH)
name1 == name2
def test_csvpaths_cache_dir(self) -> None:
paths = Builder().build()
cache = Cache(paths)
path = cache.get_cachedir()
assert path
assert paths.config.cache_dir_path == path
assert paths.config.get(section="cache", name="path")
assert os.path.exists(path)
def test_csvpaths_cache_keypath(self) -> None:
paths = Builder().build()
cache = Cache(paths)
keypath1 = cache.get_keypath(PATH)
keypath2 = cache.get_keypath(PATH)
assert keypath1
assert keypath1 == keypath2
def test_csvpaths_cache_text(self) -> None:
paths = Builder().build()
cache = Cache(paths)
cache.clear_cache()
js1 = {"headers": ["a", "b", "c"]}
cache.cache_text(PATH, js1)
js2 = cache.cached_text(PATH)
assert js2
assert js1 == js2
js3 = {"headers": ["d", "e", "f"]}
cache.cache_text(PATH, js3)
js4 = cache.cached_text(PATH)
assert js4
assert js4 == js3
assert js3 != js2
cachedir = cache.get_cachedir()
assert len(Nos(cachedir).listdir()) == 1