@@ -354,3 +354,50 @@ def test_migrate_subcomponents(self):
354354 ops_learning .refresh_from_db ()
355355 self .assertEqual (ops_learning .per_component .count (), 2 )
356356 self .assertEqual (ops_learning .per_component_validated .count (), 2 )
357+
358+
359+ class OpsLearningCoverageTestCase (APITestCase ):
360+
361+ def setUp (self ):
362+ super ().setUp ()
363+ country = CountryFactory .create ()
364+ self .appeal1 = AppealFactory .create (code = "APP-COV-1" , country = country )
365+ self .appeal2 = AppealFactory .create (code = "APP-COV-2" , country = country )
366+ self .ops_learning1 = OpsLearningFactory .create (is_validated = True , appeal_code = self .appeal1 )
367+ self .ops_learning2 = OpsLearningFactory .create (is_validated = False , appeal_code = self .appeal2 )
368+
369+ def test_ops_learning_coverage_list (self ):
370+ url = "/api/v2/ops-learning-coverage/"
371+ response = self .client .get (url )
372+
373+ self .assert_200 (response )
374+ results = response .data ["results" ]
375+ self .assertEqual (len (results ), 1 )
376+
377+ result_keys = set (results [0 ].keys ())
378+ self .assertEqual (result_keys , {"appeal_code" , "is_validated" })
379+
380+ appeal_codes = {item ["appeal_code" ] for item in results }
381+ self .assertEqual (appeal_codes , {self .appeal1 .code })
382+
383+ def test_ops_learning_coverage_list_admin (self ):
384+ url = "/api/v2/ops-learning-coverage/"
385+ self .authenticate (self .ifrc_user )
386+ response = self .client .get (url )
387+
388+ self .assert_200 (response )
389+ results = response .data ["results" ]
390+ self .assertEqual (len (results ), 2 )
391+
392+ appeal_codes = {item ["appeal_code" ] for item in results }
393+ self .assertEqual (appeal_codes , {self .appeal1 .code , self .appeal2 .code })
394+
395+ def test_ops_learning_coverage_filter_validated (self ):
396+ url = "/api/v2/ops-learning-coverage/"
397+ response = self .client .get (url , {"is_validated" : "true" })
398+
399+ self .assert_200 (response )
400+ results = response .data ["results" ]
401+ self .assertEqual (len (results ), 1 )
402+ self .assertTrue (results [0 ]["is_validated" ])
403+ self .assertEqual (results [0 ]["appeal_code" ], self .appeal1 .code )
0 commit comments