* Tests updated
* Correct handling of forced refresh
This commit is contained in:
parent
a117da20b1
commit
46538fa620
@ -49,13 +49,14 @@ def parse_expires(h):
|
||||
|
||||
class IanaRDAPDatabase():
|
||||
|
||||
def __init__(self, category="domains", maxage=MAXAGE, cachedir=CACHE,
|
||||
def __init__(self, category="domains", maxage=None, cachedir=CACHE,
|
||||
pickleformat=False):
|
||||
"""Retrieves the IANA database, if not already cached. maxage is in
|
||||
hours. The cachedir is a directory (it will be created if not already
|
||||
existant). pickleformat is not the default because it is not really
|
||||
faster *and* it introduces security risks if someone can write in the
|
||||
file (see the documentation of the module).
|
||||
|
||||
"""
|
||||
|
||||
cache_valid = False
|
||||
@ -69,6 +70,12 @@ file (see the documentation of the module).
|
||||
self.cachefile = cachefile + ".json"
|
||||
self.lockname = self.cachefile + ".lock"
|
||||
self.expirationfile = self.cachefile + ".expires"
|
||||
if maxage is not None:
|
||||
with open(self.expirationfile, 'w'):
|
||||
self.expirationtime = time.mktime((datetime.datetime.now() + \
|
||||
datetime.timedelta(hours=maxage)).timetuple())
|
||||
os.utime(self.expirationfile,
|
||||
times = (self.expirationtime, self.expirationtime))
|
||||
loaded = False
|
||||
tests = 0
|
||||
errmsg = "No error"
|
||||
|
@ -17,13 +17,13 @@ def test_basic():
|
||||
len(database.services) > 1000
|
||||
|
||||
def test_alternative_cache():
|
||||
tmpfile = tempfile.NamedTemporaryFile(suffix=".testianacache", delete=False)
|
||||
database = ianardap.IanaRDAPDatabase(cachefile=tmpfile.name, maxage=0)
|
||||
assert os.path.exists(tmpfile.name) and \
|
||||
datetime.datetime.fromtimestamp(os.path.getmtime(tmpfile.name)) > \
|
||||
tmpdir = tempfile.TemporaryDirectory(suffix=".testianacaches")
|
||||
database = ianardap.IanaRDAPDatabase(cachedir=tmpdir.name, maxage=0)
|
||||
assert os.path.exists(database.cachefile) and \
|
||||
datetime.datetime.fromtimestamp(os.path.getmtime(database.cachefile)) > \
|
||||
(datetime.datetime.now() - datetime.timedelta(minutes=1))
|
||||
os.remove(tmpfile.name)
|
||||
os.remove(tmpfile.name + ".json.lock")
|
||||
os.remove(database.cachefile)
|
||||
os.remove(database.cachefile + ".lock")
|
||||
|
||||
def test_refresh():
|
||||
# Force a resfresh
|
||||
@ -35,7 +35,7 @@ def test_refresh():
|
||||
def test_find_exists():
|
||||
database = ianardap.IanaRDAPDatabase()
|
||||
server = database.find("www.foobar.ar")
|
||||
assert server == "https://rdap.nic.ar/"
|
||||
assert server == ["https://rdap.nic.ar/"]
|
||||
|
||||
def test_find_not_exists():
|
||||
database = ianardap.IanaRDAPDatabase()
|
||||
|
Loading…
Reference in New Issue
Block a user