Skip to content

Commit 7d8ee36

Browse files
authored
Merge pull request #7 from TogetherCrew/feat/6-website-module-activated-field
feat: filter website communities data based on platform activation st…
2 parents bfc93bf + aae529f commit 7d8ee36

File tree

2 files changed

+96
-12
lines changed

2 files changed

+96
-12
lines changed

hivemind_etl/website/module.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,14 @@ def get_learning_platforms(
5757
platform_id=platform_id,
5858
metadata_name="resources",
5959
)
60-
61-
communities_data.append(
62-
{
63-
"community_id": str(community),
64-
"platform_id": str(platform_id),
65-
"urls": website_links,
66-
}
67-
)
60+
if platform["metadata"]["activated"]:
61+
communities_data.append(
62+
{
63+
"community_id": str(community),
64+
"platform_id": str(platform_id),
65+
"urls": website_links,
66+
}
67+
)
6868
except Exception as exp:
6969
logging.error(
7070
"Exception while fetching website modules "

tests/integration/test_module_website.py

Lines changed: 88 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ def test_get_website_communities_data_single_modules(self):
4848
{
4949
"platform": platform_id,
5050
"name": "website",
51-
"metadata": {},
51+
"metadata": {
52+
"activated": True,
53+
},
5254
}
5355
]
5456
},
@@ -102,7 +104,9 @@ def test_get_website_communities_data_module_multiple_platforms(self):
102104
{
103105
"platform": platform_id,
104106
"name": "website",
105-
"metadata": {},
107+
"metadata": {
108+
"activated": True,
109+
},
106110
},
107111
{
108112
"platform": platform_id2,
@@ -174,12 +178,16 @@ def test_get_website_communities_data_module_multiple_platforms_filtered_one(sel
174178
{
175179
"platform": platform_id,
176180
"name": "website",
177-
"metadata": {},
181+
"metadata": {
182+
"activated": True,
183+
},
178184
},
179185
{
180186
"platform": platform_id2,
181187
"name": "website",
182-
"metadata": {},
188+
"metadata": {
189+
"activated": True,
190+
},
183191
},
184192
]
185193
},
@@ -202,3 +210,79 @@ def test_get_website_communities_data_module_multiple_platforms_filtered_one(sel
202210
"urls": ["link1", "link2"],
203211
},
204212
)
213+
214+
def test_get_website_communities_data_module_multiple_platforms_one_disabled(self):
215+
"""
216+
Test get_learning_platforms when a community has multiple platforms but one platform is disabled
217+
Verifies that only website platform data is returned even when
218+
other platform types exist.
219+
"""
220+
platform_id = ObjectId("6579c364f1120850414e0dc6")
221+
platform_id2 = ObjectId("6579c364f1120850414e0dc7")
222+
community_id = ObjectId("6579c364f1120850414e0dc5")
223+
224+
self.client["Core"]["platforms"].insert_one(
225+
{
226+
"_id": platform_id,
227+
"name": "website",
228+
"metadata": {"resources": ["link1", "link2"]},
229+
"community": community_id,
230+
"disconnectedAt": None,
231+
"connectedAt": datetime.now(),
232+
"createdAt": datetime.now(),
233+
"updatedAt": datetime.now(),
234+
}
235+
)
236+
237+
self.client["Core"]["platforms"].insert_one(
238+
{
239+
"_id": platform_id2,
240+
"name": "website",
241+
"metadata": {"resources": ["link3", "link4"]},
242+
"community": community_id,
243+
"disconnectedAt": None,
244+
"connectedAt": datetime.now(),
245+
"createdAt": datetime.now(),
246+
"updatedAt": datetime.now(),
247+
}
248+
)
249+
250+
self.client["Core"]["modules"].insert_one(
251+
{
252+
"name": "hivemind",
253+
"community": community_id,
254+
"options": {
255+
"platforms": [
256+
{
257+
"platform": platform_id,
258+
"name": "website",
259+
"metadata": {
260+
"activated": True,
261+
},
262+
},
263+
{
264+
"platform": platform_id2,
265+
"name": "website",
266+
"metadata": {
267+
"activated": False,
268+
},
269+
},
270+
]
271+
},
272+
}
273+
)
274+
275+
result = self.modules_website.get_learning_platforms()
276+
277+
# Assertions
278+
self.assertIsInstance(result, list)
279+
self.assertEqual(len(result), 1)
280+
281+
self.assertEqual(
282+
result[0],
283+
{
284+
"community_id": "6579c364f1120850414e0dc5",
285+
"platform_id": str(platform_id),
286+
"urls": ["link1", "link2"],
287+
},
288+
)

0 commit comments

Comments
 (0)