diff --git a/fedn/fedn/network/api/client.py b/fedn/fedn/network/api/client.py index 4fe0cfe4a..85fcc6009 100644 --- a/fedn/fedn/network/api/client.py +++ b/fedn/fedn/network/api/client.py @@ -38,6 +38,15 @@ def get_model_trail(self): response = requests.get(self._get_url('get_model_trail'), verify=self.verify) return response.json() + def list_models(self, session_id=None): + """ Get all models from the statestore. + + :return: All models. + :rtype: dict + """ + response = requests.get(self._get_url('list_models'), params={'session_id': session_id}, verify=self.verify) + return response.json() + def list_clients(self): """ Get all clients from the statestore. diff --git a/fedn/fedn/network/api/tests.py b/fedn/fedn/network/api/tests.py index cf9e27b3e..fbd4f4972 100644 --- a/fedn/fedn/network/api/tests.py +++ b/fedn/fedn/network/api/tests.py @@ -304,6 +304,19 @@ def test_list_sessions(self): # Assert api.list_sessions was called fedn.network.api.server.api.get_all_sessions.assert_called_once() + def test_list_models(self): + """ Test list_models endpoint. """ + # Mock api.list_models + return_value = {"test": "test"} + fedn.network.api.server.api.get_models = MagicMock(return_value=return_value) + # Make request + response = self.app.get('/list_models') + # Assert response + self.assertEqual(response.status_code, 200) + self.assertEqual(response.json, return_value) + # Assert api.list_models was called + fedn.network.api.server.api.get_models.assert_called_once() + def test_get_package(self): """ Test get_package endpoint. """ # Mock api.get_package