Code cleanup
This commit is contained in:
parent
c297fd7fe7
commit
135544c0db
@ -83,10 +83,10 @@ class SevenZipArchiver:
|
||||
data = zf.read(archive_file)[archive_file].read()
|
||||
except py7zr.Bad7zFile as e:
|
||||
logger.error("bad 7zip file [%s]: %s :: %s", e, self.path, archive_file)
|
||||
raise IOError
|
||||
raise IOError from e
|
||||
except Exception as e:
|
||||
logger.error("bad 7zip file [%s]: %s :: %s", e, self.path, archive_file)
|
||||
raise IOError
|
||||
raise IOError from e
|
||||
|
||||
return data
|
||||
|
||||
@ -143,7 +143,6 @@ class SevenZipArchiver:
|
||||
zout.writef(bio, fname)
|
||||
except Exception:
|
||||
logger.exception("Error rebuilding 7zip file: %s", self.path)
|
||||
return []
|
||||
|
||||
# replace with the new file
|
||||
os.remove(self.path)
|
||||
@ -248,8 +247,7 @@ class ZipArchiver:
|
||||
# preserve the old comment
|
||||
zout.comment = zin.comment
|
||||
except Exception:
|
||||
logger.exception("Error rebuilding 7zip file: %s", self.path)
|
||||
return []
|
||||
logger.exception("Error rebuilding zip file: %s", self.path)
|
||||
|
||||
# replace with the new file
|
||||
os.remove(self.path)
|
||||
@ -422,8 +420,7 @@ class RarArchiver:
|
||||
break
|
||||
|
||||
else:
|
||||
# Success"
|
||||
# entries is a list of of tuples: ( rarinfo, filedata)
|
||||
# Success. Entries is a list of of tuples: ( rarinfo, filedata)
|
||||
if tries > 1:
|
||||
logger.info("Attempted read_files() {%d} times", tries)
|
||||
if len(entries) == 1:
|
||||
@ -593,7 +590,6 @@ class FolderArchiver:
|
||||
return itemlist
|
||||
|
||||
|
||||
# noinspection PyUnusedLocal
|
||||
class UnknownArchiver:
|
||||
|
||||
"""Unknown implementation"""
|
||||
|
@ -107,8 +107,6 @@ class FileNameParser:
|
||||
# some titles)
|
||||
filename = re.sub(r"of [\d]+", self.repl, filename)
|
||||
|
||||
# print u"[{0}]".format(filename)
|
||||
|
||||
# we should now have a cleaned up filename version with all the words in
|
||||
# the same positions as original filename
|
||||
|
||||
|
@ -91,7 +91,7 @@ class AutoTagMatchWindow(QtWidgets.QDialog):
|
||||
|
||||
path = self.current_match_set.ca.path
|
||||
self.setWindowTitle(
|
||||
"Select correct match or skip ({0} of {1}): {2}".format(
|
||||
"Select correct match or skip ({} of {}): {}".format(
|
||||
self.current_match_set_idx + 1,
|
||||
len(self.match_set_list),
|
||||
os.path.split(path)[1],
|
||||
|
@ -81,7 +81,7 @@ def display_match_set_for_choice(label, match_set: MultipleMatch, opts, settings
|
||||
for (counter, m) in enumerate(match_set.matches):
|
||||
counter += 1
|
||||
print(
|
||||
" {0}. {1} #{2} [{3}] ({4}/{5}) - {6}".format(
|
||||
" {}. {} #{} [{}] ({}/{}) - {}".format(
|
||||
counter,
|
||||
m["series"],
|
||||
m["issue_number"],
|
||||
@ -195,7 +195,7 @@ def process_file_cli(filename, opts, settings, match_results: OnlineMatchResults
|
||||
ca = ComicArchive(filename, settings.rar_exe_path, ComicTaggerSettings.get_graphic("nocover.png"))
|
||||
|
||||
if not os.path.lexists(filename):
|
||||
logger.error("Cannot find " + filename)
|
||||
logger.error("Cannot find %s", filename)
|
||||
return
|
||||
|
||||
if not ca.seems_to_be_a_comic_archive():
|
||||
@ -463,13 +463,13 @@ def process_file_cli(filename, opts, settings, match_results: OnlineMatchResults
|
||||
|
||||
try:
|
||||
new_name = renamer.determine_name(ext=new_ext)
|
||||
except Exception as e:
|
||||
print(
|
||||
msg_hdr + "Invalid format string!\nYour rename template is invalid!\n\n"
|
||||
"{}\n\nPlease consult the template help in the settings "
|
||||
except Exception:
|
||||
logger.exception(
|
||||
msg_hdr + "Invalid format string!\n"
|
||||
"Your rename template is invalid!\n\n"
|
||||
"Please consult the template help in the settings "
|
||||
"and the documentation on the format at "
|
||||
"https://docs.python.org/3/library/string.html#format-string-syntax".format(e),
|
||||
file=sys.stderr,
|
||||
"https://docs.python.org/3/library/string.html#format-string-syntax"
|
||||
)
|
||||
return
|
||||
|
||||
|
@ -144,8 +144,7 @@ class ComicVineTalker:
|
||||
|
||||
cv_response = requests.get(test_url, headers={"user-agent": "comictagger/" + ctversion.version}).json()
|
||||
|
||||
# Bogus request, but if the key is wrong, you get error 100: "Invalid
|
||||
# API Key"
|
||||
# Bogus request, but if the key is wrong, you get error 100: "Invalid API Key"
|
||||
return cv_response["status_code"] != 100
|
||||
except:
|
||||
return False
|
||||
@ -208,8 +207,7 @@ class ComicVineTalker:
|
||||
# Sanitize the series name for comicvine searching, comicvine search ignore symbols
|
||||
search_series_name = utils.sanitize_title(series_name)
|
||||
|
||||
# before we search online, look in our cache, since we might have
|
||||
# done this same search recently
|
||||
# before we search online, look in our cache, since we might have done this same search recently
|
||||
cvc = ComicVineCacher()
|
||||
if not refresh_cache:
|
||||
cached_search_results = cvc.get_search_results(series_name)
|
||||
@ -238,13 +236,11 @@ class ComicVineTalker:
|
||||
|
||||
# 8 Dec 2018 - Comic Vine changed query results again. Terms are now
|
||||
# ORed together, and we get thousands of results. Good news is the
|
||||
# results are sorted by relevance, so we can be smart about halting
|
||||
# the search.
|
||||
# results are sorted by relevance, so we can be smart about halting the search.
|
||||
# 1. Don't fetch more than some sane amount of pages.
|
||||
max_results = 500
|
||||
# 2. Halt when not all of our search terms are present in a result
|
||||
# 3. Halt when the results contain more (plus threshold) words than
|
||||
# our search
|
||||
# 3. Halt when the results contain more (plus threshold) words than our search
|
||||
result_word_count_max = len(search_series_name.split()) + 3
|
||||
|
||||
total_result_count = min(total_result_count, max_results)
|
||||
@ -516,17 +512,6 @@ class ComicVineTalker:
|
||||
return metadata
|
||||
|
||||
def cleanup_html(self, string, remove_html_tables):
|
||||
"""
|
||||
converter = html2text.HTML2Text()
|
||||
#converter.emphasis_mark = '*'
|
||||
#converter.ignore_links = True
|
||||
converter.body_width = 0
|
||||
|
||||
print(html2text.html2text(string))
|
||||
return string
|
||||
#return converter.handle(string)
|
||||
"""
|
||||
|
||||
if string is None:
|
||||
return ""
|
||||
# find any tables
|
||||
@ -663,8 +648,7 @@ class ComicVineTalker:
|
||||
|
||||
def fetch_cached_issue_select_details(self, issue_id):
|
||||
|
||||
# before we search online, look in our cache, since we might already
|
||||
# have this info
|
||||
# before we search online, look in our cache, since we might already have this info
|
||||
cvc = ComicVineCacher()
|
||||
return cvc.get_issue_select_details(issue_id)
|
||||
|
||||
@ -692,8 +676,7 @@ class ComicVineTalker:
|
||||
alt_cover_url_list = []
|
||||
|
||||
# Using knowledge of the layout of the Comic Vine issue page here:
|
||||
# look for the divs that are in the classes 'imgboxart' and
|
||||
# 'issue-cover'
|
||||
# look for the divs that are in the classes 'imgboxart' and 'issue-cover'
|
||||
div_list = soup.find_all("div")
|
||||
covers_found = 0
|
||||
for d in div_list:
|
||||
@ -713,8 +696,7 @@ class ComicVineTalker:
|
||||
|
||||
def fetch_cached_alternate_cover_urls(self, issue_id):
|
||||
|
||||
# before we search online, look in our cache, since we might already
|
||||
# have this info
|
||||
# before we search online, look in our cache, since we might already have this info
|
||||
cvc = ComicVineCacher()
|
||||
url_list = cvc.get_alt_covers(issue_id)
|
||||
if url_list is not None:
|
||||
|
@ -62,8 +62,7 @@ class FileRenamer:
|
||||
# (TODO: This could fail if there is more than one token appended together, I guess)
|
||||
text_list = text.split()
|
||||
|
||||
# special case for issuecount, remove preceding non-token word,
|
||||
# as in "...(of %issuecount%)..."
|
||||
# special case for issuecount, remove preceding non-token word, as in "...(of %issuecount%)..."
|
||||
if token == "%issuecount%":
|
||||
for idx, word in enumerate(text_list):
|
||||
if token in word and not is_token(text_list[idx - 1]):
|
||||
@ -270,7 +269,6 @@ class FileRenamer2:
|
||||
md_dict["month_name"] = calendar.month_name[int(md.month)]
|
||||
md_dict["month_abbr"] = calendar.month_abbr[int(md.month)]
|
||||
else:
|
||||
print(md.month)
|
||||
md_dict["month_name"] = ""
|
||||
md_dict["month_abbr"] = ""
|
||||
|
||||
@ -294,5 +292,4 @@ class FileRenamer2:
|
||||
md.issue = IssueString(md.issue).as_string()
|
||||
if self.move:
|
||||
return new_name.strip()
|
||||
else:
|
||||
return new_basename.strip()
|
||||
return new_basename.strip()
|
||||
|
@ -15,6 +15,7 @@
|
||||
# limitations under the License.
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
import sqlite3 as lite
|
||||
@ -22,6 +23,9 @@ import tempfile
|
||||
|
||||
import requests
|
||||
|
||||
from comictaggerlib import ctversion
|
||||
from comictaggerlib.settings import ComicTaggerSettings
|
||||
|
||||
try:
|
||||
from PyQt5 import QtCore, QtNetwork
|
||||
|
||||
@ -29,12 +33,6 @@ try:
|
||||
except ImportError:
|
||||
qt_available = False
|
||||
|
||||
|
||||
import logging
|
||||
|
||||
from comictaggerlib import ctversion
|
||||
from comictaggerlib.settings import ComicTaggerSettings
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@ -145,9 +143,8 @@ class ImageFetcher:
|
||||
timestamp = datetime.datetime.now()
|
||||
|
||||
tmp_fd, filename = tempfile.mkstemp(dir=self.cache_folder, prefix="img")
|
||||
f = os.fdopen(tmp_fd, "w+b")
|
||||
f.write(image_data)
|
||||
f.close()
|
||||
with os.fdopen(tmp_fd, "w+b") as f:
|
||||
f.write(image_data)
|
||||
|
||||
cur.execute("INSERT or REPLACE INTO Images VALUES(?, ?, ?)", (url, filename, timestamp))
|
||||
|
||||
|
@ -72,8 +72,7 @@ class ImageHasher:
|
||||
|
||||
def average_hash2(self):
|
||||
"""
|
||||
# Got this one from somewhere on the net. Not a clue how the 'convolve2d'
|
||||
# works!
|
||||
# Got this one from somewhere on the net. Not a clue how the 'convolve2d' works!
|
||||
|
||||
from numpy import array
|
||||
from scipy.signal import convolve2d
|
||||
|
@ -557,7 +557,7 @@ class IssueIdentifier:
|
||||
|
||||
def print_match(item):
|
||||
self.log_msg(
|
||||
"-----> {0} #{1} {2} ({3}/{4}) -- score: {5}".format(
|
||||
"-----> {} #{} {} ({}/{}) -- score: {}".format(
|
||||
item["series"],
|
||||
item["issue_number"],
|
||||
item["issue_title"],
|
||||
|
@ -45,8 +45,8 @@ try:
|
||||
"""
|
||||
if QtWidgets.QApplication.instance() is not None:
|
||||
errorbox = QtWidgets.QMessageBox()
|
||||
errorbox.setText("Oops. An unexpected error occured:\n{0}".format(log_msg))
|
||||
errorbox.exec_()
|
||||
errorbox.setText(f"Oops. An unexpected error occured:\n{log_msg}")
|
||||
errorbox.exec()
|
||||
QtWidgets.QApplication.exit(1)
|
||||
else:
|
||||
logger.debug("No QApplication instance available.")
|
||||
@ -55,7 +55,7 @@ try:
|
||||
_exception_caught = QtCore.pyqtSignal(object)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(UncaughtHook, self).__init__(*args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
# this registers the exception_hook() function as hook with the Python interpreter
|
||||
sys.excepthook = self.exception_hook
|
||||
@ -72,12 +72,8 @@ try:
|
||||
sys.__excepthook__(exc_type, exc_value, exc_traceback)
|
||||
else:
|
||||
exc_info = (exc_type, exc_value, exc_traceback)
|
||||
log_msg = "\n".join(
|
||||
["".join(traceback.format_tb(exc_traceback)), "{0}: {1}".format(exc_type.__name__, exc_value)]
|
||||
)
|
||||
logger.critical(
|
||||
"Uncaught exception: %s", "{0}: {1}".format(exc_type.__name__, exc_value), exc_info=exc_info
|
||||
)
|
||||
log_msg = "\n".join(["".join(traceback.format_tb(exc_traceback)), f"{exc_type.__name__}: {exc_value}"])
|
||||
logger.critical("Uncaught exception: %s: %s", exc_type.__name__, exc_value, exc_info=exc_info)
|
||||
|
||||
# trigger message box show
|
||||
self._exception_caught.emit(log_msg)
|
||||
|
@ -241,7 +241,7 @@ For more help visit the wiki at: https://github.com/comictagger/comictagger/wiki
|
||||
input_args = sys.argv[1:]
|
||||
|
||||
# first check if we're launching a script:
|
||||
for n in range(len(input_args)):
|
||||
for n, _ in enumerate(input_args):
|
||||
if input_args[n] in ["-S", "--script"] and n + 1 < len(input_args):
|
||||
# insert a "--" which will cause getopt to ignore the remaining args
|
||||
# so they will be passed to the script
|
||||
|
@ -35,12 +35,9 @@ def item_move_events(widget):
|
||||
def eventFilter(self, obj, event):
|
||||
|
||||
if obj == widget:
|
||||
# print(event.type())
|
||||
if event.type() == QtCore.QEvent.Type.ChildRemoved:
|
||||
# print("ChildRemoved")
|
||||
self.mysignal.emit("finish")
|
||||
if event.type() == QtCore.QEvent.Type.ChildAdded:
|
||||
# print("ChildAdded")
|
||||
self.mysignal.emit("start")
|
||||
return True
|
||||
|
||||
@ -241,7 +238,7 @@ class PageListEditor(QtWidgets.QWidget):
|
||||
front_cover = 0
|
||||
for i in range(self.listWidget.count()):
|
||||
item = self.listWidget.item(i)
|
||||
page_dict = item.data(QtCore.Qt.ItemDataRole.UserRole)[0] # .toPyObject()[0]
|
||||
page_dict = item.data(QtCore.Qt.ItemDataRole.UserRole)[0]
|
||||
if "Type" in page_dict and page_dict["Type"] == PageType.FrontCover:
|
||||
front_cover = int(page_dict["Image"])
|
||||
break
|
||||
@ -249,7 +246,7 @@ class PageListEditor(QtWidgets.QWidget):
|
||||
|
||||
def get_current_page_type(self):
|
||||
row = self.listWidget.currentRow()
|
||||
page_dict = self.listWidget.item(row).data(QtCore.Qt.ItemDataRole.UserRole)[0] # .toPyObject()[0]
|
||||
page_dict = self.listWidget.item(row).data(QtCore.Qt.ItemDataRole.UserRole)[0]
|
||||
if "Type" in page_dict:
|
||||
return page_dict["Type"]
|
||||
|
||||
@ -257,7 +254,7 @@ class PageListEditor(QtWidgets.QWidget):
|
||||
|
||||
def set_current_page_type(self, t):
|
||||
row = self.listWidget.currentRow()
|
||||
page_dict = self.listWidget.item(row).data(QtCore.Qt.ItemDataRole.UserRole)[0] # .toPyObject()[0]
|
||||
page_dict = self.listWidget.item(row).data(QtCore.Qt.ItemDataRole.UserRole)[0]
|
||||
|
||||
if t == "":
|
||||
if "Type" in page_dict:
|
||||
@ -335,7 +332,7 @@ class PageListEditor(QtWidgets.QWidget):
|
||||
def list_entry_text(self, page_dict):
|
||||
text = str(int(page_dict["Image"]) + 1)
|
||||
if "Type" in page_dict:
|
||||
if page_dict["Type"] in self.pageTypeNames.keys():
|
||||
if page_dict["Type"] in self.pageTypeNames:
|
||||
text += " (" + self.pageTypeNames[page_dict["Type"]] + ")"
|
||||
else:
|
||||
text += " (Error: " + page_dict["Type"] + ")"
|
||||
@ -349,7 +346,7 @@ class PageListEditor(QtWidgets.QWidget):
|
||||
page_list = []
|
||||
for i in range(self.listWidget.count()):
|
||||
item = self.listWidget.item(i)
|
||||
page_list.append(item.data(QtCore.Qt.ItemDataRole.UserRole)[0]) # .toPyObject()[0]
|
||||
page_list.append(item.data(QtCore.Qt.ItemDataRole.UserRole)[0])
|
||||
return page_list
|
||||
|
||||
def emit_front_cover_change(self):
|
||||
|
@ -95,11 +95,11 @@ class RenameWindow(QtWidgets.QDialog):
|
||||
self,
|
||||
"Invalid format string!",
|
||||
"Your rename template is invalid!"
|
||||
"<br/><br/>{}<br/><br/>"
|
||||
f"<br/><br/>{e}<br/><br/>"
|
||||
"Please consult the template help in the "
|
||||
"settings and the documentation on the format at "
|
||||
"<a href='https://docs.python.org/3/library/string.html#format-string-syntax'>"
|
||||
"https://docs.python.org/3/library/string.html#format-string-syntax</a>".format(e),
|
||||
"https://docs.python.org/3/library/string.html#format-string-syntax</a>",
|
||||
)
|
||||
return
|
||||
|
||||
@ -176,7 +176,6 @@ class RenameWindow(QtWidgets.QDialog):
|
||||
new_abs_path = utils.unique_file(os.path.join(folder, item["new_name"]))
|
||||
|
||||
if os.path.join(folder, item["new_name"]) == item["archive"].path:
|
||||
print(item["new_name"], "Filename is already good!")
|
||||
logger.info(item["new_name"], "Filename is already good!")
|
||||
continue
|
||||
|
||||
|
@ -243,7 +243,7 @@ class ComicTaggerSettings:
|
||||
|
||||
def reset(self):
|
||||
os.unlink(self.settings_file)
|
||||
self.__init__()
|
||||
self.__init__(ComicTaggerSettings.folder)
|
||||
|
||||
def load(self):
|
||||
def readline_generator(f):
|
||||
|
@ -304,11 +304,11 @@ class SettingsWindow(QtWidgets.QDialog):
|
||||
self,
|
||||
"Invalid format string!",
|
||||
"Your rename template is invalid!"
|
||||
"<br/><br/>{}<br/><br/>"
|
||||
f"<br/><br/>{self.rename_error}<br/><br/>"
|
||||
"Please consult the template help in the "
|
||||
"settings and the documentation on the format at "
|
||||
"<a href='https://docs.python.org/3/library/string.html#format-string-syntax'>"
|
||||
"https://docs.python.org/3/library/string.html#format-string-syntax</a>".format(self.rename_error),
|
||||
"https://docs.python.org/3/library/string.html#format-string-syntax</a>",
|
||||
)
|
||||
return
|
||||
|
||||
|
@ -82,12 +82,12 @@ class TaggerWindow(QtWidgets.QMainWindow):
|
||||
alive = socket.waitForConnected(3000)
|
||||
if alive:
|
||||
print(f"Another application with key [{settings.install_id}] is already running")
|
||||
logger.info(f"Another application with key [{settings.install_id}] is already running")
|
||||
logger.info("Another application with key [%s] is already running", settings.install_id)
|
||||
# send file list to other instance
|
||||
if file_list:
|
||||
socket.write(pickle.dumps(file_list))
|
||||
if not socket.waitForBytesWritten(3000):
|
||||
print(socket.errorString())
|
||||
logger.error(socket.errorString())
|
||||
socket.disconnectFromServer()
|
||||
sys.exit()
|
||||
else:
|
||||
@ -493,8 +493,7 @@ Please choose options below, and select OK.
|
||||
os.unlink(ca.path)
|
||||
|
||||
else:
|
||||
# last export failed, so remove the zip, if it
|
||||
# exists
|
||||
# last export failed, so remove the zip, if it exists
|
||||
failed_list.append(ca.path)
|
||||
if os.path.lexists(export_name):
|
||||
os.remove(export_name)
|
||||
@ -1092,7 +1091,6 @@ Please choose options below, and select OK.
|
||||
|
||||
def update_credit_colors(self):
|
||||
# !!!ATB qt5 porting TODO
|
||||
# return
|
||||
inactive_color = QtGui.QColor(255, 170, 150)
|
||||
active_palette = self.leSeries.palette()
|
||||
active_color = active_palette.color(QtGui.QPalette.ColorRole.Base)
|
||||
@ -2067,8 +2065,8 @@ Please choose options below, and select OK to Auto-Tag.
|
||||
# the top
|
||||
win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, x, y, w, h, 0)
|
||||
win32gui.SetWindowPos(hwnd, win32con.HWND_NOTOPMOST, x, y, w, h, 0)
|
||||
except Exception as e:
|
||||
print("Whoops", e)
|
||||
except Exception:
|
||||
logger.exception("Fail to bring window to top")
|
||||
elif platform.system() == "Darwin":
|
||||
self.raise_()
|
||||
self.showNormal()
|
||||
|
@ -348,7 +348,7 @@ class VolumeSelectionWindow(QtWidgets.QDialog):
|
||||
|
||||
# pre sort the data - so that we can put exact matches first afterwards
|
||||
# compare as str incase extra chars ie. '1976?'
|
||||
# - missing (none) values being converted to 'None' - consistant with prior behaviour in v1.2.3
|
||||
# - missing (none) values being converted to 'None' - consistent with prior behaviour in v1.2.3
|
||||
# sort by start_year if set
|
||||
if self.settings.sort_series_by_year:
|
||||
try:
|
||||
|
@ -92,8 +92,6 @@ def main():
|
||||
else:
|
||||
xform_list = default_xform_list
|
||||
|
||||
# pprint( xform_list, indent=4)
|
||||
|
||||
filelist = utils.get_recursive_filelist(parsed_args.paths)
|
||||
|
||||
# first find all comics
|
||||
|
@ -3,32 +3,14 @@ from filenames import fnames
|
||||
|
||||
import comicapi.filenameparser
|
||||
|
||||
# def test_filename_parser():
|
||||
# p = comicapi.filenameparser.FileNameParser()
|
||||
# p.parse_filename("Cory Doctorows Futuristic Tales of the Here and Now #1 andas game.rar")
|
||||
# fp = p.__dict__
|
||||
|
||||
# assert fp["issue"] == "1"
|
||||
# assert fp["series"] == "Cory Doctorows Futuristic Tales of the Here and Now"
|
||||
# assert fp["remainder"] == "andas game"
|
||||
# assert fp["volume"] == ""
|
||||
# assert fp["year"] == ""
|
||||
# assert fp["issue_count"] == ""
|
||||
|
||||
|
||||
@pytest.mark.parametrize("filename,reason,expected", fnames)
|
||||
def test_file_name_parser(filename, reason, expected):
|
||||
p = comicapi.filenameparser.FileNameParser()
|
||||
p.parse_filename(filename)
|
||||
fp = p.__dict__
|
||||
# del expected["remainder"]
|
||||
# del expected["title"]
|
||||
# del fp["archive"]
|
||||
for s in ["title"]:
|
||||
if s in expected:
|
||||
# expected[s] = ""
|
||||
del expected[s]
|
||||
# if s not in fp:
|
||||
# fp[s] = ""
|
||||
|
||||
assert fp == expected
|
||||
|
@ -29,7 +29,6 @@ def test_set_default_page_list(tmpdir):
|
||||
md = GenericMetadata()
|
||||
md.overlay(md_test)
|
||||
md.pages = []
|
||||
print(md_test.pages, md.pages)
|
||||
md.set_default_page_list(len(md_test.pages))
|
||||
|
||||
assert isinstance(md.pages[0]["Image"], int)
|
||||
|
Loading…
Reference in New Issue
Block a user