Skip to content

Commit ba5ac99

Browse files
author
Marius Schlueter
committed
new version with no_read function
1 parent 690f483 commit ba5ac99

7 files changed

Lines changed: 52 additions & 6 deletions

File tree

pytrackunit/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
"""init module"""
22

3-
__version__ = "1.0.3"
3+
__version__ = "1.1.0"

pytrackunit/tucache.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ def clean(self):
1111
self.cache.clean()
1212
def get(self,url):
1313
"""takes the data from cache if possible. otherwise data is loaded from web"""
14-
return self.cache.get(url)
14+
data = self.cache.get(url)
15+
if len(data) == 0:
16+
data["list"] = []
17+
return data

pytrackunit/webcache.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99
import shutil
1010
import requests
1111

12-
def get_from_file(fname):
12+
def get_from_file(fname,dont_read=False):
1313
"""get_from_file method"""
1414
try:
1515
if os.path.isfile(fname):
16+
if dont_read:
17+
return {}
1618
try:
1719
with open(fname,encoding='utf8') as file:
1820
return json.load(file)
@@ -39,6 +41,7 @@ def __init__(self,auth=None,_dir=None,verbose=False):
3941
else:
4042
self.dir = _dir
4143
self.min_write_len = 0
44+
self.dont_read_files = False
4245
Path(self.dir).mkdir(parents=True, exist_ok=True)
4346
def clean(self):
4447
"""clean method"""
@@ -57,7 +60,7 @@ def get_from_web(self,url):
5760
def get(self,url):
5861
"""get method"""
5962
fname = join(self.dir,md5(url.encode('utf-8')).hexdigest()+".json")
60-
data = get_from_file(fname)
63+
data = get_from_file(fname,self.dont_read_files)
6164
if data is None:
6265
resp = self.get_from_web(url)
6366
if len(resp.text) > self.min_write_len:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setuptools.setup(
77
name="pytrackunit",
8-
version="1.0.3",
8+
version="1.1.0",
99
author="Marius Schlueter",
1010
author_email="themrslue@googlemail.com",
1111
description="Easy access for TrackUnit REST API",

tests/test_trackunit.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,14 @@ def test_getcandata():
2828
tu.cache.dir = "pytest-web-cache"
2929
tu.cache.clean()
3030
data = tu.get_candata("3331359",tdelta=100)
31-
assert len(data) > 10000
31+
assert len(data) > 10000
32+
def test_getcandata_no_file_read():
33+
tu = TrackUnit()
34+
tu.cache.cache.dont_read_files = True
35+
tu.cache.dir = "pytest-web-cache"
36+
tu.cache.clean()
37+
data = tu.get_candata("3331359",tdelta=100)
38+
assert len(data) > 10000
39+
data = tu.get_candata("3331359",tdelta=100)
40+
assert len(data) == 0
41+
assert data == []

tests/test_tucache.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from pytrackunit.tucache import TuCache
22

33
DUMMY_URL = 'https://pokeapi.co/api/v2/pokemon/ditto'
4+
DATA_LEN = 21779
45

56
def test_clean_start():
67
cache = TuCache(_dir="pytest-web-cache")
@@ -17,4 +18,24 @@ def test_Get_WithFile():
1718
assert data["abilities"][0]["ability"]["name"] == "limber"
1819
data = cache.get(DUMMY_URL)
1920
assert data["abilities"][0]["ability"]["name"] == "limber"
21+
cache.clean()
22+
def test_Get_no_file_read():
23+
cache = TuCache(_dir="pytest-web-cache")
24+
cache.cache.dont_read_files = True
25+
cache.clean()
26+
data = cache.get(DUMMY_URL)
27+
assert data["abilities"][0]["ability"]["name"] == "limber"
28+
data = cache.get(DUMMY_URL)
29+
assert len(data) == 1
30+
assert data["list"] == []
31+
cache.clean()
32+
def test_Get_verbose(capsys):
33+
cache = TuCache(_dir="pytest-web-cache",verbose=True)
34+
cache.clean()
35+
data = cache.get(DUMMY_URL)
36+
captured = capsys.readouterr()
37+
assert captured.out == DUMMY_URL+" "+str(DATA_LEN)+" W\n"
38+
data = cache.get(DUMMY_URL)
39+
captured = capsys.readouterr()
40+
assert captured.out == DUMMY_URL+" "+str(DATA_LEN)+" C\n"
2041
cache.clean()

tests/test_webcache.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,12 @@ def test_Get_WithFile():
7474
data = cache.get(DUMMY_URL)
7575
assert data["abilities"][0]["ability"]["name"] == "limber"
7676
cache.clean()
77+
def test_Get_no_file_read():
78+
cache = WebCache(_dir="pytest-web-cache")
79+
cache.dont_read_files = True
80+
cache.clean()
81+
data = cache.get(DUMMY_URL)
82+
assert data["abilities"][0]["ability"]["name"] == "limber"
83+
data = cache.get(DUMMY_URL)
84+
assert data == {}
85+
cache.clean()

0 commit comments

Comments
 (0)