Cleaned too wide excepts
This commit is contained in:
parent
a2f7510e3b
commit
d4f9af8a53
32
backend.py
32
backend.py
@ -36,7 +36,7 @@ def getNewName(src, bibtex, tag='', override_format=None):
|
||||
new_name = override_format
|
||||
try:
|
||||
new_name = new_name.replace("%j", bibtex['journal'])
|
||||
except:
|
||||
except KeyError:
|
||||
pass
|
||||
elif bibtex['type'] == 'book':
|
||||
if override_format is None:
|
||||
@ -47,7 +47,7 @@ def getNewName(src, bibtex, tag='', override_format=None):
|
||||
new_name = new_name.replace("%t", bibtex['title'])
|
||||
try:
|
||||
new_name = new_name.replace("%Y", bibtex['year'])
|
||||
except:
|
||||
except KeyError:
|
||||
pass
|
||||
new_name = new_name.replace("%f", authors[0].split(',')[0].strip())
|
||||
new_name = new_name.replace("%l", authors[-1].split(',')[0].strip())
|
||||
@ -72,7 +72,7 @@ def getNewName(src, bibtex, tag='', override_format=None):
|
||||
if not os.path.isdir(config.get("folder") + tag):
|
||||
try:
|
||||
os.mkdir(config.get("folder") + tag)
|
||||
except:
|
||||
except OSError:
|
||||
tools.warning("Unable to create tag dir " +
|
||||
config.get("folder")+tag+".")
|
||||
|
||||
@ -91,7 +91,7 @@ def bibtexAppend(data):
|
||||
with open(config.get("folder")+'index.bib', 'a', encoding='utf-8') \
|
||||
as fh:
|
||||
fh.write(tools.parsed2Bibtex(data)+"\n")
|
||||
except Exception as e:
|
||||
except IOError as e:
|
||||
raise e
|
||||
tools.warning("Unable to open index file.")
|
||||
return False
|
||||
@ -105,7 +105,7 @@ def bibtexEdit(ident, modifs):
|
||||
as fh:
|
||||
bibtex = BibTexParser(fh.read())
|
||||
bibtex = bibtex.get_entry_dict()
|
||||
except:
|
||||
except (IOError, TypeError):
|
||||
tools.warning("Unable to open index file.")
|
||||
return False
|
||||
|
||||
@ -126,7 +126,7 @@ def bibtexRewrite(data):
|
||||
with open(config.get("folder")+'index.bib', 'w', encoding='utf-8') \
|
||||
as fh:
|
||||
fh.write(bibtex)
|
||||
except:
|
||||
except (IOError, TypeError):
|
||||
tools.warning("Unable to open index file.")
|
||||
return False
|
||||
|
||||
@ -138,7 +138,7 @@ def deleteId(ident):
|
||||
as fh:
|
||||
bibtex = BibTexParser(fh.read().decode('utf-8'))
|
||||
bibtex = bibtex.get_entry_dict()
|
||||
except:
|
||||
except (IOError, TypeError):
|
||||
tools.warning("Unable to open index file.")
|
||||
return False
|
||||
|
||||
@ -147,14 +147,14 @@ def deleteId(ident):
|
||||
|
||||
try:
|
||||
os.remove(bibtex[ident]['file'])
|
||||
except:
|
||||
except (KeyError, OSError):
|
||||
tools.warning("Unable to delete file associated to id "+ident+" : " +
|
||||
bibtex[ident]['file'])
|
||||
|
||||
try:
|
||||
if not os.listdir(os.path.dirname(bibtex[ident]['file'])):
|
||||
os.rmdir(os.path.dirname(bibtex[ident]['file']))
|
||||
except:
|
||||
except (KeyError, OSError):
|
||||
tools.warning("Unable to delete empty tag dir " +
|
||||
os.path.dirname(bibtex[ident]['file']))
|
||||
|
||||
@ -174,7 +174,7 @@ def deleteFile(filename):
|
||||
as fh:
|
||||
bibtex = BibTexParser(fh.read().decode('utf-8'))
|
||||
bibtex = bibtex.get_entry_dict()
|
||||
except:
|
||||
except (TypeError, IOError):
|
||||
tools.warning("Unable to open index file.")
|
||||
return False
|
||||
|
||||
@ -185,14 +185,14 @@ def deleteFile(filename):
|
||||
found = True
|
||||
try:
|
||||
os.remove(bibtex[key]['file'])
|
||||
except:
|
||||
except (KeyError, OSError):
|
||||
tools.warning("Unable to delete file associated to id " +
|
||||
key+" : "+bibtex[key]['file'])
|
||||
|
||||
try:
|
||||
if not os.listdir(os.path.dirname(filename)):
|
||||
os.rmdir(os.path.dirname(filename))
|
||||
except:
|
||||
except OSError:
|
||||
tools.warning("Unable to delete empty tag dir " +
|
||||
os.path.dirname(filename))
|
||||
|
||||
@ -201,7 +201,7 @@ def deleteFile(filename):
|
||||
except KeyError:
|
||||
tools.warning("No associated bibtex entry in index for " +
|
||||
"file " + bibtex[key]['file'])
|
||||
except:
|
||||
except (KeyError, OSError):
|
||||
pass
|
||||
if found:
|
||||
bibtexRewrite(bibtex)
|
||||
@ -224,7 +224,7 @@ def diffFilesIndex():
|
||||
as fh:
|
||||
index = BibTexParser(fh.read())
|
||||
index_diff = index.get_entry_dict()
|
||||
except:
|
||||
except (TypeError, IOError):
|
||||
tools.warning("Unable to open index file.")
|
||||
return False
|
||||
|
||||
@ -252,7 +252,7 @@ def getBibtex(entry, file_id='both', clean=False):
|
||||
as fh:
|
||||
bibtex = BibTexParser(fh.read())
|
||||
bibtex = bibtex.get_entry_dict()
|
||||
except:
|
||||
except (TypeError, IOError):
|
||||
tools.warning("Unable to open index file.")
|
||||
return False
|
||||
|
||||
@ -284,7 +284,7 @@ def getEntries():
|
||||
as fh:
|
||||
bibtex = BibTexParser(fh.read())
|
||||
bibtex = bibtex.get_entry_dict()
|
||||
except:
|
||||
except (TypeError, IOError):
|
||||
tools.warning("Unable to open index file.")
|
||||
return False
|
||||
|
||||
|
28
bmc.py
28
bmc.py
@ -39,12 +39,12 @@ def checkBibtex(filename, bibtex_string):
|
||||
check = tools.rawInput("Is it correct? [Y/n] ")
|
||||
except KeyboardInterrupt:
|
||||
sys.exit()
|
||||
except:
|
||||
except (KeyError, AssertionError):
|
||||
check = 'n'
|
||||
|
||||
try:
|
||||
old_filename = bibtex['file']
|
||||
except:
|
||||
except KeyError:
|
||||
old_filename = False
|
||||
|
||||
while check.lower() == 'n':
|
||||
@ -58,7 +58,7 @@ def checkBibtex(filename, bibtex_string):
|
||||
bibtex = bibtex.get_entry_dict()
|
||||
try:
|
||||
bibtex = bibtex[bibtex.keys()[0]]
|
||||
except:
|
||||
except KeyError:
|
||||
tools.warning("Invalid bibtex entry")
|
||||
bibtex_string = ''
|
||||
tools.rawInput("Press Enter to go back to editor.")
|
||||
@ -83,7 +83,7 @@ def checkBibtex(filename, bibtex_string):
|
||||
try:
|
||||
print("Moving file to new location…")
|
||||
shutil.move(old_filename, bibtex['file'])
|
||||
except:
|
||||
except shutil.Error:
|
||||
tools.warning("Unable to move file "+old_filename+" to " +
|
||||
bibtex['file']+". You should check it manually.")
|
||||
|
||||
@ -205,7 +205,7 @@ def addFile(src, filetype, manual, autoconfirm, tag):
|
||||
|
||||
try:
|
||||
shutil.copy2(src, new_name)
|
||||
except IOError:
|
||||
except shutil.Error:
|
||||
new_name = False
|
||||
sys.exit("Unable to move file to library dir " +
|
||||
config.get("folder")+".")
|
||||
@ -214,7 +214,7 @@ def addFile(src, filetype, manual, autoconfirm, tag):
|
||||
try:
|
||||
if 'IOP' in bibtex['publisher'] and bibtex['type'] == 'article':
|
||||
tearpages.main(new_name)
|
||||
except:
|
||||
except (KeyError, shutil.Error, IOError):
|
||||
pass
|
||||
|
||||
backend.bibtexAppend(bibtex)
|
||||
@ -254,14 +254,14 @@ def editEntry(entry, file_id='both'):
|
||||
|
||||
try:
|
||||
shutil.move(bibtex['file'], new_bibtex['file'])
|
||||
except:
|
||||
raise Exception('Unable to move file '+bibtex['file']+' to ' +
|
||||
except shutil.Error:
|
||||
tools.warning('Unable to move file '+bibtex['file']+' to ' +
|
||||
new_bibtex['file'] + ' according to tag edit.')
|
||||
|
||||
try:
|
||||
if not os.listdir(os.path.dirname(bibtex['file'])):
|
||||
os.rmdir(os.path.dirname(bibtex['file']))
|
||||
except:
|
||||
except OSError:
|
||||
tools.warning("Unable to delete empty tag dir " +
|
||||
os.path.dirname(bibtex['file']))
|
||||
|
||||
@ -270,7 +270,7 @@ def editEntry(entry, file_id='both'):
|
||||
as fh:
|
||||
index = BibTexParser(fh.read())
|
||||
index = index.get_entry_dict()
|
||||
except:
|
||||
except (TypeError, IOError):
|
||||
tools.warning("Unable to open index file.")
|
||||
return False
|
||||
|
||||
@ -305,7 +305,7 @@ def openFile(ident):
|
||||
as fh:
|
||||
bibtex = BibTexParser(fh.read())
|
||||
bibtex = bibtex.get_entry_dict()
|
||||
except:
|
||||
except (TypeError, IOError):
|
||||
tools.warning("Unable to open index file.")
|
||||
return False
|
||||
|
||||
@ -370,7 +370,7 @@ def resync():
|
||||
shutil.copy2(filename, new_name)
|
||||
print("Imported new file "+filename+" for entry " +
|
||||
entry['id']+".")
|
||||
except IOError:
|
||||
except shutil.Error:
|
||||
new_name = False
|
||||
sys.exit("Unable to move file to library dir " +
|
||||
config.get("folder")+".")
|
||||
@ -388,7 +388,7 @@ def resync():
|
||||
filetype = tools.getExtension(entry['file'])
|
||||
try:
|
||||
os.remove(entry['file'])
|
||||
except:
|
||||
except OSError:
|
||||
tools.warning("Unable to delete file "+entry['file'])
|
||||
if not addFile(tmp.name, filetype):
|
||||
tools.warning("Unable to reimport file "+entry['file'])
|
||||
@ -402,7 +402,7 @@ def resync():
|
||||
if os.path.isdir(i) and not os.listdir(config.get("folder") + i):
|
||||
try:
|
||||
os.rmdir(config.get("folder") + i)
|
||||
except:
|
||||
except OSError:
|
||||
tools.warning("Found empty tag dir "+config.get("folder") + i +
|
||||
" but could not delete it.")
|
||||
|
||||
|
@ -117,7 +117,7 @@ def isbn2Bib(isbn):
|
||||
# Default merges results from worldcat.org and google books
|
||||
try:
|
||||
return fmtbib('bibtex', isbntools.meta(isbn, 'default'))
|
||||
except:
|
||||
except TypeError:
|
||||
return ''
|
||||
|
||||
|
||||
@ -268,7 +268,7 @@ def arXiv2Bib(arxiv):
|
||||
fetched_bibtex = fetched_bibtex[fetched_bibtex.keys()[0]]
|
||||
try:
|
||||
del(fetched_bibtex['file'])
|
||||
except:
|
||||
except KeyError:
|
||||
pass
|
||||
return tools.parsed2Bibtex(fetched_bibtex)
|
||||
return ''
|
||||
|
72
tests/test_config.py
Normal file
72
tests/test_config.py
Normal file
@ -0,0 +1,72 @@
|
||||
# -*- coding: utf8 -*-
|
||||
# -----------------------------------------------------------------------------
|
||||
# "THE NO-ALCOHOL BEER-WARE LICENSE" (Revision 42):
|
||||
# Phyks (webmaster@phyks.me) wrote this file. As long as you retain this notice
|
||||
# you can do whatever you want with this stuff (and you can also do whatever
|
||||
# you want with this stuff without retaining it, but that's not cool...). If we
|
||||
# meet some day, and you think this stuff is worth it, you can buy me a
|
||||
# <del>beer</del> soda in return.
|
||||
# Phyks
|
||||
# -----------------------------------------------------------------------------
|
||||
import unittest
|
||||
from config import Config
|
||||
import json
|
||||
import os
|
||||
import tempfile
|
||||
import shutil
|
||||
|
||||
|
||||
class TestConfig(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.folder = tempfile.mkdtemp()+"/"
|
||||
self.default_config = {"folder": os.path.expanduser("~/Papers/"),
|
||||
"proxies": [''],
|
||||
"format_articles": "%f_%l-%j-%Y%v",
|
||||
"format_books": "%a-%t",
|
||||
"format_custom": [],
|
||||
"ignore_fields": ["file", "doi", "tag"]}
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.folder)
|
||||
|
||||
def test_load_without_file(self):
|
||||
config = Config(base_config_path=self.folder)
|
||||
self.assertEqual(config.as_dict(), self.default_config)
|
||||
with open(self.folder+"bmc.json", 'r') as fh:
|
||||
read = json.loads(fh.read())
|
||||
self.assertEqual(read, self.default_config)
|
||||
|
||||
def test_load_with_file(self):
|
||||
config = self.default_config
|
||||
config["foo"] = "bar"
|
||||
with open(self.folder+"bmc.json", 'w') as fh:
|
||||
json.dump(config, fh)
|
||||
config_read = Config(base_config_path=self.folder)
|
||||
self.assertEqual(config, config_read.as_dict())
|
||||
|
||||
def test_get(self):
|
||||
config = Config(base_config_path=self.folder)
|
||||
self.assertEqual(config.get("proxies"), [''])
|
||||
|
||||
def test_set(self):
|
||||
config = Config(base_config_path=self.folder)
|
||||
config.set("foo", "bar")
|
||||
self.assertEqual(config.get("foo"), "bar")
|
||||
|
||||
def test_save(self):
|
||||
config = Config(base_config_path=self.folder)
|
||||
config.set("foo", "bar")
|
||||
config.save()
|
||||
with open(self.folder+"bmc.json", 'r') as fh:
|
||||
read = json.loads(fh.read())
|
||||
self.assertEqual(read, config.as_dict())
|
||||
|
||||
def test_masks(self):
|
||||
with open(self.folder+"masks.py", 'w') as fh:
|
||||
fh.write("def f(x): return x")
|
||||
config = Config(base_config_path=self.folder)
|
||||
self.assertEqual("foo", config.get("format_custom")[0]("foo"))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
Reference in New Issue
Block a user