mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Finish up the live module loading tests
This commit is contained in:
parent
f408f8a466
commit
139595437f
@ -10,6 +10,7 @@ import re
|
|||||||
import sys
|
import sys
|
||||||
import types
|
import types
|
||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
|
from datetime import timedelta
|
||||||
from enum import Enum, auto
|
from enum import Enum, auto
|
||||||
from http import HTTPStatus
|
from http import HTTPStatus
|
||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
@ -28,6 +29,7 @@ worker = None
|
|||||||
worker_lock = Lock()
|
worker_lock = Lock()
|
||||||
fetcher = None
|
fetcher = None
|
||||||
db_path = None
|
db_path = None
|
||||||
|
old_interval = timedelta(days=1)
|
||||||
module_version = 1
|
module_version = 1
|
||||||
minimum_calibre_version = 5, 7, 0
|
minimum_calibre_version = 5, 7, 0
|
||||||
|
|
||||||
@ -196,7 +198,7 @@ def download_module(full_name, timeout=default_timeout, strategy=Strategy.downlo
|
|||||||
if strategy is Strategy.download_now:
|
if strategy is Strategy.download_now:
|
||||||
return load_module_from_data(full_name, latest_data_for_module(full_name, timeout=timeout))
|
return load_module_from_data(full_name, latest_data_for_module(full_name, timeout=timeout))
|
||||||
cached_etag, cached_data, date = read_from_cache(full_name)
|
cached_etag, cached_data, date = read_from_cache(full_name)
|
||||||
if date is not None and (utcnow() - date).days > 0:
|
if date is None or (utcnow() - date) > old_interval:
|
||||||
return load_module_from_data(full_name, latest_data_for_module(full_name, timeout=timeout))
|
return load_module_from_data(full_name, latest_data_for_module(full_name, timeout=timeout))
|
||||||
if cached_data is not None:
|
if cached_data is not None:
|
||||||
return load_module_from_data(full_name, cached_data)
|
return load_module_from_data(full_name, cached_data)
|
||||||
@ -251,6 +253,7 @@ def find_tests():
|
|||||||
self.fetched_module_version = 99999
|
self.fetched_module_version = 99999
|
||||||
self.sentinel_value = 1
|
self.sentinel_value = 1
|
||||||
self.fetch_counter = 0
|
self.fetch_counter = 0
|
||||||
|
self.orig_old_interval = old_interval
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def live_data(self):
|
def live_data(self):
|
||||||
@ -266,9 +269,10 @@ def find_tests():
|
|||||||
return q, data
|
return q, data
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
global db_path, fetcher
|
global db_path, fetcher, old_interval
|
||||||
os.remove(db_path)
|
os.remove(db_path)
|
||||||
db_path = fetcher = None
|
db_path = fetcher = None
|
||||||
|
old_interval = self.orig_old_interval
|
||||||
|
|
||||||
def assert_cache_empty(self):
|
def assert_cache_empty(self):
|
||||||
self.ae(read_from_cache('live.test'), (None, None, None))
|
self.ae(read_from_cache('live.test'), (None, None, None))
|
||||||
@ -280,6 +284,7 @@ def find_tests():
|
|||||||
self.ae(read_from_cache('live.test')[:2], ('etag', data))
|
self.ae(read_from_cache('live.test')[:2], ('etag', data))
|
||||||
|
|
||||||
def test_module_loading(self):
|
def test_module_loading(self):
|
||||||
|
global old_interval
|
||||||
self.assert_cache_empty()
|
self.assert_cache_empty()
|
||||||
m = load_module('calibre.live', strategy=Strategy.fast)
|
m = load_module('calibre.live', strategy=Strategy.fast)
|
||||||
self.assertEqual(m.module_version, module_version)
|
self.assertEqual(m.module_version, module_version)
|
||||||
@ -291,6 +296,21 @@ def find_tests():
|
|||||||
m = load_module('calibre.live', strategy=Strategy.fast)
|
m = load_module('calibre.live', strategy=Strategy.fast)
|
||||||
self.assertEqual(m.module_version, self.fetched_module_version)
|
self.assertEqual(m.module_version, self.fetched_module_version)
|
||||||
self.ae(self.fetch_counter, 1)
|
self.ae(self.fetch_counter, 1)
|
||||||
|
m = load_module('calibre.live', strategy=Strategy.download_if_old)
|
||||||
|
self.assertEqual(m.module_version, self.fetched_module_version)
|
||||||
|
self.ae(self.fetch_counter, 1)
|
||||||
|
m = load_module('calibre.live', strategy=Strategy.download_now)
|
||||||
|
self.assertEqual(m.module_version, self.fetched_module_version)
|
||||||
|
self.ae(self.fetch_counter, 2)
|
||||||
|
old_interval = timedelta(days=-1)
|
||||||
|
m = load_module('calibre.live', strategy=Strategy.download_if_old)
|
||||||
|
self.assertEqual(m.module_version, self.fetched_module_version)
|
||||||
|
self.ae(self.fetch_counter, 3)
|
||||||
|
old_interval = self.orig_old_interval
|
||||||
|
clear_cache()
|
||||||
|
m = load_module('calibre.live', strategy=Strategy.download_if_old)
|
||||||
|
self.assertEqual(m.module_version, self.fetched_module_version)
|
||||||
|
self.ae(self.fetch_counter, 4)
|
||||||
|
|
||||||
return unittest.defaultTestLoader.loadTestsFromTestCase(LiveTest)
|
return unittest.defaultTestLoader.loadTestsFromTestCase(LiveTest)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user