@@ -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