Skip to content

Commit f78fb13

Browse files
committed
fix: align actions to new cmd output format
1 parent 30399ca commit f78fb13

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

src/charm.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -952,7 +952,8 @@ def _on_delete_identity_action(self, event: ActionEvent) -> None:
952952

953953
if email:
954954
identity = self.kratos.get_identity_from_email(email)
955-
if not identity:
955+
identity_id = identity.get("id")
956+
if not identity_id:
956957
event.fail("Couldn't retrieve identity_id from email.")
957958
return
958959

src/kratos.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,10 @@ def list_identities(self) -> List:
9393

9494
# TODO: Consider reading from the stream instead of waiting for output
9595
cmd_output = json.loads(self._run_cmd(cmd))
96+
identities = cmd_output.get("identities")
9697
logger.info("Successfully fetched all identities")
97-
return cmd_output
98+
99+
return identities
98100

99101
def get_identity_from_email(self, email: str) -> Optional[Dict]:
100102
"""Get an identity using an email.

tests/unit/test_kratos.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,10 @@ def test_delete_identity(
130130
def test_list_identities(
131131
kratos_api: KratosAPI, kratos_identity_json: Dict, mocked_kratos_process: MagicMock
132132
) -> None:
133-
mocked_kratos_process.wait_output.return_value = (json.dumps([kratos_identity_json]), None)
133+
mocked_kratos_process.wait_output.return_value = (
134+
json.dumps({"identities": [kratos_identity_json]}),
135+
None,
136+
)
134137

135138
kratos_api.list_identities()
136139

@@ -148,7 +151,10 @@ def test_list_identities(
148151
def test_get_identity_from_email(
149152
kratos_api: KratosAPI, kratos_identity_json: Dict, mocked_kratos_process: MagicMock
150153
) -> None:
151-
mocked_kratos_process.wait_output.return_value = (json.dumps([kratos_identity_json]), None)
154+
mocked_kratos_process.wait_output.return_value = (
155+
json.dumps({"identities": [kratos_identity_json]}),
156+
None,
157+
)
152158

153159
identity = kratos_api.get_identity_from_email(kratos_identity_json["traits"]["email"])
154160

@@ -167,7 +173,10 @@ def test_get_identity_from_email(
167173
def test_get_identity_from_email_with_wrong_mail(
168174
kratos_api: KratosAPI, kratos_identity_json: Dict, mocked_kratos_process: MagicMock
169175
) -> None:
170-
mocked_kratos_process.wait_output.return_value = (json.dumps([kratos_identity_json]), None)
176+
mocked_kratos_process.wait_output.return_value = (
177+
json.dumps({"identities": [kratos_identity_json]}),
178+
None,
179+
)
171180

172181
identity = kratos_api.get_identity_from_email("mail")
173182

0 commit comments

Comments
 (0)