diff --git a/hivemind_etl/website/module.py b/hivemind_etl/website/module.py index bb0f59d..ed6ece9 100644 --- a/hivemind_etl/website/module.py +++ b/hivemind_etl/website/module.py @@ -57,14 +57,14 @@ def get_learning_platforms( platform_id=platform_id, metadata_name="resources", ) - - communities_data.append( - { - "community_id": str(community), - "platform_id": str(platform_id), - "urls": website_links, - } - ) + if platform["metadata"]["activated"]: + communities_data.append( + { + "community_id": str(community), + "platform_id": str(platform_id), + "urls": website_links, + } + ) except Exception as exp: logging.error( "Exception while fetching website modules " diff --git a/tests/integration/test_module_website.py b/tests/integration/test_module_website.py index 206dee8..d86529c 100644 --- a/tests/integration/test_module_website.py +++ b/tests/integration/test_module_website.py @@ -48,7 +48,9 @@ def test_get_website_communities_data_single_modules(self): { "platform": platform_id, "name": "website", - "metadata": {}, + "metadata": { + "activated": True, + }, } ] }, @@ -102,7 +104,9 @@ def test_get_website_communities_data_module_multiple_platforms(self): { "platform": platform_id, "name": "website", - "metadata": {}, + "metadata": { + "activated": True, + }, }, { "platform": platform_id2, @@ -174,12 +178,16 @@ def test_get_website_communities_data_module_multiple_platforms_filtered_one(sel { "platform": platform_id, "name": "website", - "metadata": {}, + "metadata": { + "activated": True, + }, }, { "platform": platform_id2, "name": "website", - "metadata": {}, + "metadata": { + "activated": True, + }, }, ] }, @@ -202,3 +210,79 @@ def test_get_website_communities_data_module_multiple_platforms_filtered_one(sel "urls": ["link1", "link2"], }, ) + + def test_get_website_communities_data_module_multiple_platforms_one_disabled(self): + """ + Test get_learning_platforms when a community has multiple platforms but one platform is disabled + Verifies that only website platform data is returned even when + other platform types exist. + """ + platform_id = ObjectId("6579c364f1120850414e0dc6") + platform_id2 = ObjectId("6579c364f1120850414e0dc7") + community_id = ObjectId("6579c364f1120850414e0dc5") + + self.client["Core"]["platforms"].insert_one( + { + "_id": platform_id, + "name": "website", + "metadata": {"resources": ["link1", "link2"]}, + "community": community_id, + "disconnectedAt": None, + "connectedAt": datetime.now(), + "createdAt": datetime.now(), + "updatedAt": datetime.now(), + } + ) + + self.client["Core"]["platforms"].insert_one( + { + "_id": platform_id2, + "name": "website", + "metadata": {"resources": ["link3", "link4"]}, + "community": community_id, + "disconnectedAt": None, + "connectedAt": datetime.now(), + "createdAt": datetime.now(), + "updatedAt": datetime.now(), + } + ) + + self.client["Core"]["modules"].insert_one( + { + "name": "hivemind", + "community": community_id, + "options": { + "platforms": [ + { + "platform": platform_id, + "name": "website", + "metadata": { + "activated": True, + }, + }, + { + "platform": platform_id2, + "name": "website", + "metadata": { + "activated": False, + }, + }, + ] + }, + } + ) + + result = self.modules_website.get_learning_platforms() + + # Assertions + self.assertIsInstance(result, list) + self.assertEqual(len(result), 1) + + self.assertEqual( + result[0], + { + "community_id": "6579c364f1120850414e0dc5", + "platform_id": str(platform_id), + "urls": ["link1", "link2"], + }, + )