From c9c872b3ee53f42a08b6811deb5faaa12c291bb1 Mon Sep 17 00:00:00 2001 From: Lingamuneni Santhosh Siddhardha <103999924+Santhosh-Siddhardha@users.noreply.github.com> Date: Sun, 9 Jun 2024 22:22:45 +0530 Subject: [PATCH 1/3] Added init file for devpost module --- src/scrape_up/devpost/__init__.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/scrape_up/devpost/__init__.py diff --git a/src/scrape_up/devpost/__init__.py b/src/scrape_up/devpost/__init__.py new file mode 100644 index 00000000..0d22f1f6 --- /dev/null +++ b/src/scrape_up/devpost/__init__.py @@ -0,0 +1,3 @@ +from .devpost import Devpost + +__all__ = ["Devpost"] \ No newline at end of file From 0a808b259edc76f774dfdc0c65d787b44df5981f Mon Sep 17 00:00:00 2001 From: Lingamuneni Santhosh Siddhardha <103999924+Santhosh-Siddhardha@users.noreply.github.com> Date: Sun, 9 Jun 2024 22:23:44 +0530 Subject: [PATCH 2/3] Added test files for devpost module --- src/test/devpost_test.py | 93 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/test/devpost_test.py diff --git a/src/test/devpost_test.py b/src/test/devpost_test.py new file mode 100644 index 00000000..b6576b86 --- /dev/null +++ b/src/test/devpost_test.py @@ -0,0 +1,93 @@ +import unittest +from src.scrape_up.devpost import Devpost + + +class TestDevpost(unittest.TestCase): + + def setUp(self): + """ + Initialize a Devpost instance before each test method. + """ + self.devpost = Devpost() + + def test_get_projects(self): + """ + Test the get_projects() method. + """ + try: + projects = self.devpost.get_projects() + self.assertIsInstance(projects, list, "Expected a list of projects") + if projects: # Check if there are projects returned + project = projects[0] + self.assertIn("title", project, "Project should have a 'title' field") + self.assertIn("description", project, "Project should have a 'description' field") + self.assertIn("like_count", project, "Project should have a 'like_count' field") + self.assertIn("comment_count", project, "Project should have a 'comment_count' field") + self.assertIn("img_url", project, "Project should have a 'img_url' field") + self.assertIn("members", project, "Project should have a 'members' field") + self.assertIsInstance(project["members"], list, "Members should be a list") + except: + return None + + def test_search(self): + """ + Test the search() method. + """ + try: + topic = "AI" + projects = self.devpost.search(topic) + self.assertIsInstance(projects, list, "Expected a list of projects") + if projects: # Check if there are projects returned + project = projects[0] + self.assertIn("name", project, "Project should have a 'name' field") + self.assertIn("tagline", project, "Project should have a 'tagline' field") + self.assertIn("like_count", project, "Project should have a 'like_count' field") + self.assertIn("comment_count", project, "Project should have a 'comment_count' field") + self.assertIn("photo", project, "Project should have a 'photo' field") + self.assertIn("members", project, "Project should have a 'members' field") + self.assertIsInstance(project["members"], list, "Members should be a list") + + except: + return None + + + def test_get_featured(self): + """ + Test the get_featured() method. + """ + try: + featured_projects = self.devpost.get_featured() + self.assertIsInstance(featured_projects, list, "Expected a list of featured projects") + if featured_projects: # Check if there are featured projects returned + project = featured_projects[0] + self.assertIn("name", project, "Project should have a 'name' field") + self.assertIn("tagline", project, "Project should have a 'tagline' field") + self.assertIn("like_count", project, "Project should have a 'like_count' field") + self.assertIn("comment_count", project, "Project should have a 'comment_count' field") + self.assertIn("photo", project, "Project should have a 'photo' field") + self.assertIn("members", project, "Project should have a 'members' field") + self.assertIsInstance(project["members"], list, "Members should be a list") + except: + return None + + def test_get_winner(self): + """ + Test the get_winner() method. + """ + try: + winner_projects = self.devpost.get_winner() + self.assertIsInstance(winner_projects, list, "Expected a list of winning projects") + if winner_projects: # Check if there are winning projects returned + project = winner_projects[0] + self.assertIn("name", project, "Project should have a 'name' field") + self.assertIn("tagline", project, "Project should have a 'tagline' field") + self.assertIn("like_count", project, "Project should have a 'like_count' field") + self.assertIn("comment_count", project, "Project should have a 'comment_count' field") + self.assertIn("photo", project, "Project should have a 'photo' field") + self.assertIn("members", project, "Project should have a 'members' field") + self.assertIsInstance(project["members"], list, "Members should be a list") + except: + return None + +if __name__ == "__main__": + unittest.main() From 662ef8b2d81aa3a4a44cb1bffb6e110750dc7688 Mon Sep 17 00:00:00 2001 From: Lingamuneni Santhosh Siddhardha <103999924+Santhosh-Siddhardha@users.noreply.github.com> Date: Sun, 9 Jun 2024 22:37:30 +0530 Subject: [PATCH 3/3] Update devpost_test.py Added Comments --- src/test/devpost_test.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/test/devpost_test.py b/src/test/devpost_test.py index b6576b86..9bc0681a 100644 --- a/src/test/devpost_test.py +++ b/src/test/devpost_test.py @@ -3,6 +3,15 @@ class TestDevpost(unittest.TestCase): + """ + | Methods | Details | + | ------------------ | -------------------------------------------------------------------------------------------------------------------- | + | `.get_projects()` | Returns the latest projects along with their decription, like and commment count, image and member details. | + | `.search(topic)` | Returns the searched projects along with their decription, like and commment count, image and member details. | + | `.get_hackathons()` | Returns the latest hackathons along with their title, participants, prizes, deadlines. | + | `.get_featured()` | Returns the latest featured projects along with their decription, like and commment count, image and member details. | + | `.get_winner()` | Returns the latest winning projects along with their decription, like and commment count, image and member details. | + """ def setUp(self): """