Some unit test
This commit is contained in:
parent
5a8ea0750f
commit
479aea4101
3
.gitignore
vendored
3
.gitignore
vendored
@ -7,3 +7,6 @@
|
||||
|
||||
params.py
|
||||
translation-server
|
||||
*.pdf
|
||||
*.bib
|
||||
*.djvu
|
||||
|
2
bmc.py
2
bmc.py
@ -94,7 +94,7 @@ def addFile(src, filetype, manual, autoconfirm, tag):
|
||||
arxiv = fetcher.findArXivId(src)
|
||||
|
||||
if filetype == 'book' or (doi is False and arxiv is False and
|
||||
filetype is None):
|
||||
filetype is None):
|
||||
isbn = fetcher.findISBN(src)
|
||||
except KeyboardInterrupt:
|
||||
doi = False
|
||||
|
@ -57,6 +57,9 @@ def download(url):
|
||||
continue
|
||||
|
||||
return dl, contenttype
|
||||
except ValueError:
|
||||
tools.warning("Invalid URL")
|
||||
return False
|
||||
except requests.exceptions.RequestException:
|
||||
tools.warning("Unable to get "+url+" using proxy "+proxy+". It " +
|
||||
"may not be available.")
|
||||
@ -64,10 +67,10 @@ def download(url):
|
||||
return False
|
||||
|
||||
|
||||
#isbn_re = re.compile(r"isbn (([0-9]{3}[ -])?[0-9][ -][0-9]{2}[ -][0-9]{6}[ -][0-9])",
|
||||
isbn_re = re.compile(r'isbn ((?:[0-9]{3}[ -]?)?[0-9]{1,5}[ -]?[0-9]{1,7}[ -]?[0-9]{1,6}[- ]?[0-9])',
|
||||
re.IGNORECASE)
|
||||
|
||||
|
||||
def findISBN(src):
|
||||
"""Search for a valid ISBN in src.
|
||||
|
||||
|
10
tests/test_backend.py
Normal file
10
tests/test_backend.py
Normal file
@ -0,0 +1,10 @@
|
||||
# -*- 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
|
||||
# -----------------------------------------------------------------------------
|
83
tests/test_fetcher.py
Normal file
83
tests/test_fetcher.py
Normal file
@ -0,0 +1,83 @@
|
||||
# -*- 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 fetcher import *
|
||||
|
||||
|
||||
class TestFetcher(unittest.TestCase):
|
||||
def setUp(self):
|
||||
with open("tests/src/doi.bib", 'r') as fh:
|
||||
self.doi_bib = fh.read()
|
||||
with open("tests/src/arxiv.bib", 'r') as fh:
|
||||
self.arxiv_bib = fh.read()
|
||||
with open("tests/src/isbn.bib", 'r') as fh:
|
||||
self.isbn_bib = fh.read()
|
||||
|
||||
def test_download(self):
|
||||
dl, contenttype = download('http://arxiv.org/pdf/1312.4006.pdf')
|
||||
self.assertIn(contenttype, ['pdf', 'djvu'])
|
||||
self.assertNotEqual(dl, '')
|
||||
|
||||
def test_download_invalid_type(self):
|
||||
self.assertFalse(download('http://phyks.me/'))
|
||||
|
||||
def test_download_invalid_url(self):
|
||||
self.assertFalse(download('a'))
|
||||
|
||||
def test_findISBN_DJVU(self):
|
||||
self.assertEqual(findISBN("tests/src/test_book.djvu"), '0198507194')
|
||||
|
||||
def test_findISBN_PDF(self):
|
||||
self.assertEqual(findISBN("tests/src/test_book.pdf"), '9780521846516')
|
||||
|
||||
def test_findISBN_False(self):
|
||||
self.assertFalse(findISBN("tests/src/test.pdf"))
|
||||
|
||||
def test_isbn2Bib(self):
|
||||
self.assertEqual(isbn2Bib('0198507194'), self.isbn_bib)
|
||||
|
||||
def test_isbn2Bib_False(self):
|
||||
self.assertEqual(isbn2Bib('blabla'), '')
|
||||
|
||||
def test_findDOI_PDF(self):
|
||||
self.assertEqual(findDOI("tests/src/test.pdf"),
|
||||
'10.1103/physreva.88.043630')
|
||||
|
||||
def test_findDOI_DJVU(self):
|
||||
self.assertEqual(findDOI("tests/src/test.djvu"),
|
||||
'10.1103/physreva.88.043630')
|
||||
|
||||
def test_findDOI_False(self):
|
||||
self.assertFalse(findDOI("tests/src/test_arxiv_multi.pdf"))
|
||||
|
||||
def test_doi2Bib(self):
|
||||
self.assertEqual(doi2Bib('10.1103/physreva.88.043630'), self.doi_bib)
|
||||
|
||||
def test_doi2Bib_False(self):
|
||||
self.assertEqual(doi2Bib('blabla'), '')
|
||||
|
||||
def test_findArXivId(self):
|
||||
self.assertEqual(findArXivId("tests/src/test_arxiv_multi.pdf"),
|
||||
'1303.3130v1')
|
||||
|
||||
def test_arXiv2Bib(self):
|
||||
self.assertEqual(arXiv2Bib('1303.3130v1'), self.arxiv_bib)
|
||||
|
||||
def test_arXiv2Bib_False(self):
|
||||
self.assertEqual(arXiv2Bib('blabla'), '')
|
||||
|
||||
def test_findHALId(self):
|
||||
self.assertTupleEqual(findHALId("tests/src/test_hal.pdf"),
|
||||
('hal-00750893', '3'))
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
36
tests/test_tools.py
Normal file
36
tests/test_tools.py
Normal file
@ -0,0 +1,36 @@
|
||||
# -*- 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 tools import *
|
||||
|
||||
|
||||
class TestTools(unittest.TestCase):
|
||||
def test_slugify(self):
|
||||
self.assertEqual(slugify(u"à&é_truc.pdf"), "ae_trucpdf")
|
||||
|
||||
def test_parsed2Bibtex(self):
|
||||
parsed = {'type': 'article', 'id': 'test', 'field1': 'test1',
|
||||
'field2': 'test2'}
|
||||
expected = ('@article{test,\n\tfield1={test1},\n' +
|
||||
'\tfield2={test2},\n}\n\n')
|
||||
self.assertEqual(parsed2Bibtex(parsed), expected)
|
||||
|
||||
def test_getExtension(self):
|
||||
self.assertEqual(getExtension('test.ext'), '.ext')
|
||||
|
||||
def test_replaceAll(self):
|
||||
replace_dict = {"test": "bidule", "machin": "chose"}
|
||||
self.assertEqual(replaceAll("test machin truc", replace_dict),
|
||||
"bidule chose truc")
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
Reference in New Issue
Block a user