Skip to content

Commit

Permalink
Switch to scraping Goodreads rather than using API
Browse files Browse the repository at this point in the history
* management commands converted into one view, sync
* updated tests
* got rid of all the views related to using the goodreads api
* got rid of redis dependency

Closes #170 and probably some others too
  • Loading branch information
dellsystem committed Apr 26, 2023
1 parent 0d8f88f commit de47ebb
Show file tree
Hide file tree
Showing 24 changed files with 433 additions and 1,421 deletions.
96 changes: 0 additions & 96 deletions src/bookmarker/tests/test_authors.py

This file was deleted.

128 changes: 0 additions & 128 deletions src/bookmarker/tests/test_books.py

This file was deleted.

60 changes: 33 additions & 27 deletions src/bookmarker/tests/test_goodreadstools.py
Original file line number Diff line number Diff line change
@@ -1,32 +1,38 @@
from unittest.mock import patch, Mock
import datetime

from django.test import TestCase

from books import goodreadstools


class TestGoodreadstools(TestCase):
def setUp(self):
self.client = Mock()
self.redistools = Mock()

def test_get_author_new(self):
with patch.multiple(
'books.goodreadstools',
_client=self.client,
redistools=self.redistools
):
self.redistools.get_author.return_value = None
self.client.find_author.return_value = None
self.assertEqual(None, goodreadstools.get_author_by_name('new'))
self.client.find_author.assert_called_once_with('new')

def test_get_books_new(self):
with patch.multiple(
'books.goodreadstools',
_client=self.client,
redistools=self.redistools
):
self.redistools.get_book.return_value = None
self.client.search_books.return_value = []
self.assertEqual([], goodreadstools.get_books_by_title('new'))
self.client.search_books.assert_called_once_with('new')
class TestParseNumPages(TestCase):
def test_invalid_input(self):
self.assertEqual(None, goodreadstools._parse_num_pages('blah'))

def test_valid_input(self):
self.assertEqual(123, goodreadstools._parse_num_pages('123\np'))


class TestParseId(TestCase):
def test_with_hyphen(self):
self.assertEqual(
'37941942',
goodreadstools._parse_id('/book/show/37941942-the-flame')
)

def test_without_hyphen(self):
self.assertEqual(
'1188779',
goodreadstools._parse_id('/book/show/1188779.Money')
)


class TestParseDate(TestCase):
def test_invalid_input(self):
self.assertEqual(None, goodreadstools._parse_date(''))

def test_valid_input(self):
self.assertEqual(
datetime.date(2023, 2, 7),
goodreadstools._parse_date('Feb 07, 2023')
)
94 changes: 0 additions & 94 deletions src/bookmarker/tests/test_redistools.py

This file was deleted.

Loading

0 comments on commit de47ebb

Please sign in to comment.