diff --git a/src/scrape_up/librarygenesis/__init__.py b/src/scrape_up/librarygenesis/__init__.py new file mode 100644 index 00000000..55355739 --- /dev/null +++ b/src/scrape_up/librarygenesis/__init__.py @@ -0,0 +1,3 @@ +from .library import LibGen + +__all__ = ["LibGen"] diff --git a/src/test/banners_test.py b/src/test/banners_test.py index 288b86d4..e21d4508 100644 --- a/src/test/banners_test.py +++ b/src/test/banners_test.py @@ -3,7 +3,6 @@ class TestScraper88x31(unittest.TestCase): - def setUp(self): """ Initialize a Scraper88x31 instance before each test method. @@ -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() diff --git a/src/test/librarygenesis_test.py b/src/test/librarygenesis_test.py new file mode 100644 index 00000000..00456f73 --- /dev/null +++ b/src/test/librarygenesis_test.py @@ -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()