Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added test file for librarygenesis module #1113

Merged
merged 3 commits into from
Jun 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/scrape_up/librarygenesis/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .library import LibGen

__all__ = ["LibGen"]
7 changes: 3 additions & 4 deletions src/test/banners_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@


class TestScraper88x31(unittest.TestCase):

def setUp(self):
"""
Initialize a Scraper88x31 instance before each test method.
Expand All @@ -12,9 +11,9 @@ def setUp(self):

def test_get_all(self):
"""
| Methods | Details |
| ------------------ | -------------------------------------------------------- |
| `get_all()` | Returns the list of all available 88x31 banners |
| Methods | Details |
| ------------------ | -------------------------------------------------------- |
| `get_all()` | Returns the list of all available 88x31 banners |
"""
try:
banners = self.scraper.get_all()
Expand Down
80 changes: 80 additions & 0 deletions src/test/librarygenesis_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
import unittest
from scrape_up.librarygenesis import LibGen


class TestLibGen(unittest.TestCase):
"""
| Methods | Details |
| --------------| ----------------------------- |
| `.getBooks(book_name=" ")` | Returns the books with name, author, size, format, book link, book cover link, language |
"""

def setUp(self):
"""
Initialize a LibGen instance before each test method.
"""
self.libgen = LibGen()

def test_getBooks_empty_name(self):
"""
Test the getBooks() method with an empty book name.
"""
try:
result = self.libgen.getBooks("")
self.assertEqual(
result,
"Error: enter name",
"Expected error message for empty book name",
)
except:
return None

def test_getBooks_short_name(self):
"""
Test the getBooks() method with a short book name.
"""
try:
result = self.libgen.getBooks("AI")
self.assertEqual(
result,
"Error: Title Too Short",
"Expected error message for short book name",
)
except:
return None

def test_getBooks_valid_name(self):
"""
Test the getBooks() method with a valid book name.
"""
try:
result = self.libgen.getBooks("Python")
self.assertIsInstance(result, list, "Expected a list of books")
if result: # Check if there are books returned
book = result[0]
self.assertIn("name", book, "Book should have a 'name' field")
self.assertIn("author", book, "Book should have an 'author' field")
self.assertIn("size", book, "Book should have a 'size' field")
self.assertIn("format", book, "Book should have a 'format' field")
self.assertIn("link", book, "Book should have a 'link' field")
self.assertIn("language", book, "Book should have a 'language' field")
except:
return None

def test_getBooks_no_results(self):
"""
Test the getBooks() method with a book name that yields no results.
"""
try:
result = self.libgen.getBooks("somebookthatdoesnotexist")
self.assertEqual(
result,
"Error: no results found",
"Expected error message for no results found",
)
except:
return None


if __name__ == "__main__":
unittest.main()