85 lines
2.5 KiB
Python
85 lines
2.5 KiB
Python
import pytest
|
|
from books.models import Book
|
|
from django.test import override_settings
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_openlibrary_link_work_id():
|
|
book = Book.objects.create(title="Test Book", openlibrary_id="OL1234567W")
|
|
assert book.openlibrary_link == "https://openlibrary.org/works/OL1234567W"
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_openlibrary_link_edition_id():
|
|
book = Book.objects.create(title="Test Book", openlibrary_id="OL1234567M")
|
|
assert book.openlibrary_link == "https://openlibrary.org/books/OL1234567M"
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_openlibrary_link_empty():
|
|
book = Book.objects.create(title="Test Book")
|
|
assert book.openlibrary_link == ""
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_bookshop_link_isbn_13_without_affiliate():
|
|
book = Book.objects.create(title="Test Book", isbn_13="9783161484100")
|
|
assert book.bookshop_link == "https://bookshop.org/books?keywords=9783161484100"
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_bookshop_link_isbn_10_without_affiliate():
|
|
book = Book.objects.create(title="Test Book", isbn_10="0805061762")
|
|
assert book.bookshop_link == "https://bookshop.org/books?keywords=0805061762"
|
|
|
|
|
|
@pytest.mark.django_db
|
|
@override_settings(BOOKSHOP_AFFILIATE_ID="abc123")
|
|
def test_bookshop_link_with_affiliate():
|
|
book = Book.objects.create(title="Test Book", isbn_13="9783161484100")
|
|
assert book.bookshop_link == "https://bookshop.org/a/abc123/9783161484100"
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_bookshop_link_empty():
|
|
book = Book.objects.create(title="Test Book")
|
|
assert book.bookshop_link == ""
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_is_comic_false_for_prose_book():
|
|
book = Book.objects.create(title="A Gentle Madness")
|
|
assert book.is_comic is False
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_is_comic_true_for_comicvine_id():
|
|
book = Book.objects.create(title="Spider-Man", comicvine_id="538480")
|
|
assert book.is_comic is True
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_is_comic_true_for_readcomics_url():
|
|
book = Book.objects.create(
|
|
title="Saga", readcomics_url="https://readcomicsonline.ru/comic/saga/1"
|
|
)
|
|
assert book.is_comic is True
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_is_comic_true_for_issue_number():
|
|
book = Book.objects.create(title="Watchmen", issue_number=1)
|
|
assert book.is_comic is True
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_is_comic_true_for_issue_in_title():
|
|
book = Book.objects.create(title="Star Wars Issue 42")
|
|
assert book.is_comic is True
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_is_comic_true_for_volume_in_title():
|
|
book = Book.objects.create(title="East of West Volume 2")
|
|
assert book.is_comic is True
|