7375a0389a
Disabled for now; when enabled it will allow faster collection open and close in the normal case, while continuing to downgrade when exporting or doing a full sync. Also, when downgrading is disabled, the journal mode is no longer changed back to delete.
76 lines
1.6 KiB
Python
76 lines
1.6 KiB
Python
import os
|
|
import shutil
|
|
import tempfile
|
|
import time
|
|
|
|
from anki import Collection as aopen
|
|
|
|
# Between 2-4AM, shift the time back so test assumptions hold.
|
|
lt = time.localtime()
|
|
if lt.tm_hour >= 2 and lt.tm_hour < 4:
|
|
orig_time = time.time
|
|
|
|
def adjusted_time():
|
|
return orig_time() - 60 * 60 * 2
|
|
|
|
time.time = adjusted_time
|
|
else:
|
|
orig_time = None
|
|
|
|
|
|
def assertException(exception, func):
|
|
found = False
|
|
try:
|
|
func()
|
|
except exception:
|
|
found = True
|
|
assert found
|
|
|
|
|
|
# Creating new decks is expensive. Just do it once, and then spin off
|
|
# copies from the master.
|
|
def getEmptyCol():
|
|
if len(getEmptyCol.master) == 0:
|
|
(fd, nam) = tempfile.mkstemp(suffix=".anki2")
|
|
os.close(fd)
|
|
os.unlink(nam)
|
|
col = aopen(nam)
|
|
col.close(downgrade=False)
|
|
getEmptyCol.master = nam
|
|
(fd, nam) = tempfile.mkstemp(suffix=".anki2")
|
|
shutil.copy(getEmptyCol.master, nam)
|
|
col = aopen(nam)
|
|
return col
|
|
|
|
|
|
getEmptyCol.master = ""
|
|
|
|
# Fallback for when the DB needs options passed in.
|
|
def getEmptyDeckWith(**kwargs):
|
|
(fd, nam) = tempfile.mkstemp(suffix=".anki2")
|
|
os.close(fd)
|
|
os.unlink(nam)
|
|
return aopen(nam, **kwargs)
|
|
|
|
|
|
def getUpgradeDeckPath(name="anki12.anki"):
|
|
src = os.path.join(testDir, "support", name)
|
|
(fd, dst) = tempfile.mkstemp(suffix=".anki2")
|
|
shutil.copy(src, dst)
|
|
return dst
|
|
|
|
|
|
testDir = os.path.dirname(__file__)
|
|
|
|
|
|
def errorsAfterMidnight(func):
|
|
lt = time.localtime()
|
|
if lt.tm_hour < 4:
|
|
print("test disabled around cutoff", func)
|
|
else:
|
|
func()
|
|
|
|
|
|
def isNearCutoff():
|
|
return orig_time is not None
|