mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2025-01-06 07:18:43 +00:00
fix style to pass tests
This commit is contained in:
parent
3c05cecb50
commit
54eeeb5798
2 changed files with 23 additions and 53 deletions
|
@ -28,24 +28,6 @@ class BookSearch(TestCase):
|
||||||
openlibrary_key="hello",
|
openlibrary_key="hello",
|
||||||
)
|
)
|
||||||
|
|
||||||
# isbn13 entry
|
|
||||||
self.third_edition = models.Edition.objects.create(
|
|
||||||
title="Python Testing",
|
|
||||||
parent_work=self.work,
|
|
||||||
isbn_13="9781680502404",
|
|
||||||
physical_format="Paperback",
|
|
||||||
published_date=datetime.datetime(2017, 9, 1, 0, 0, tzinfo=timezone.utc),
|
|
||||||
)
|
|
||||||
|
|
||||||
# isbn10 entry
|
|
||||||
self.fourth_edition = models.Edition.objects.create(
|
|
||||||
title="Pride and Prejudice: Jane Austen",
|
|
||||||
parent_work=self.work,
|
|
||||||
isbn_13="190962165X",
|
|
||||||
physical_format="Paperback",
|
|
||||||
published_date=datetime.datetime(2017, 9, 1, 0, 0, tzinfo=timezone.utc),
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_search(self):
|
def test_search(self):
|
||||||
"""search for a book in the db"""
|
"""search for a book in the db"""
|
||||||
# title/author
|
# title/author
|
||||||
|
@ -57,18 +39,6 @@ class BookSearch(TestCase):
|
||||||
results = book_search.search("0000000000")
|
results = book_search.search("0000000000")
|
||||||
self.assertEqual(len(results), 1)
|
self.assertEqual(len(results), 1)
|
||||||
self.assertEqual(results[0], self.first_edition)
|
self.assertEqual(results[0], self.first_edition)
|
||||||
|
|
||||||
results = book_search.search("9781680502404")
|
|
||||||
self.assertEqual(len(results), 1)
|
|
||||||
self.assertEqual(results[0], self.third_edition)
|
|
||||||
|
|
||||||
results = book_search.search("9-781-68050-2-404")
|
|
||||||
self.assertEqual(len(results), 1)
|
|
||||||
self.assertEqual(results[0], self.third_edition)
|
|
||||||
|
|
||||||
results = book_search.search("1-9096-2165-X")
|
|
||||||
self.assertEqual(len(results), 1)
|
|
||||||
self.assertEqual(results[0], self.fourth_edition)
|
|
||||||
|
|
||||||
# identifier
|
# identifier
|
||||||
results = book_search.search("hello")
|
results = book_search.search("hello")
|
||||||
|
|
|
@ -25,7 +25,7 @@ class Search(View):
|
||||||
"""that search bar up top"""
|
"""that search bar up top"""
|
||||||
query = request.GET.get("q")
|
query = request.GET.get("q")
|
||||||
# check if query is isbn
|
# check if query is isbn
|
||||||
query = isbn_check(query)
|
query = isbn_check(query)
|
||||||
min_confidence = request.GET.get("min_confidence", 0)
|
min_confidence = request.GET.get("min_confidence", 0)
|
||||||
search_type = request.GET.get("type")
|
search_type = request.GET.get("type")
|
||||||
search_remote = (
|
search_remote = (
|
||||||
|
@ -128,26 +128,26 @@ def list_search(query, viewer, *_):
|
||||||
|
|
||||||
|
|
||||||
def isbn_check(query):
|
def isbn_check(query):
|
||||||
n = query.replace('-','').replace(' ', '')
|
if query:
|
||||||
if len(n) == 13:
|
su_num = query.replace("-", "").replace(" ", "")
|
||||||
# Multiply every other digit by 3
|
if len(su_num) == 13:
|
||||||
# Add these numbers and the other digits
|
# Multiply every other digit by 3
|
||||||
product = (sum(int(ch) for ch in n[::2])
|
# Add these numbers and the other digits
|
||||||
+ sum(int(ch) * 3 for ch in n[1::2]))
|
product = sum(int(ch) for ch in su_num[::2]) + sum(int(ch) * 3 for ch in su_num[1::2])
|
||||||
if product % 10 == 0:
|
if product % 10 == 0:
|
||||||
return n
|
return su_num
|
||||||
elif len(n) == 10:
|
elif len(su_num) == 10:
|
||||||
if n[0:8].isdigit() and (n[9].isdigit() or n[9].lower() == "x"):
|
if su_num[0:8].isdigit() and (su_num[9].isdigit() or su_num[9].lower() == "x"):
|
||||||
product = 0
|
product = 0
|
||||||
# Iterate through code_string
|
# Iterate through code_string
|
||||||
for i in range(9):
|
for i in range(9):
|
||||||
# for each character, multiply by a different decreasing number: 10 - x
|
# for each character, multiply by a different decreasing number: 10 - x
|
||||||
product = product + int(n[i]) * (10 - i)
|
product = product + int(su_num[i]) * (10 - i)
|
||||||
# Handle last character
|
# Handle last character
|
||||||
if n[9].lower() == "x":
|
if su_num[9].lower() == "x":
|
||||||
product += 10
|
product += 10
|
||||||
else:
|
else:
|
||||||
product += int(n[9])
|
product += int(su_num[9])
|
||||||
if product % 11 == 0:
|
if product % 11 == 0:
|
||||||
return n
|
return su_num
|
||||||
return query
|
return query
|
||||||
|
|
Loading…
Reference in a new issue