Skip to content

JSONDecodeError Raised from OnePassword.get_item() #75

@Conrad-E-Alitheon

Description

@Conrad-E-Alitheon

Describe the bug
When you call the get_item() function with a valid item Id and list containing invalid invalid field names:
op = OnePassword()
op.get_item(id="valid_id_1234", ["invalid_field1","invalid_field2"])

You get the error Message:
[ERROR] 2025/03/20 15:14:32 "invalid_field1" isn't a field in the "BAD" item

And then you get:


JSONDecodeError Traceback (most recent call last)
...
ssword/client.py:437, in OnePassword.get_item(uuid, fields, vault)
435 vault_flag = f"--vault {vault}" if vault else ""
436 if isinstance(fields, list):
--> 437 item_list = json.loads(read_bash_return(
438 "op item get {} --format=json --fields label={} {}".format(uuid, ",label=".join(fields), vault_flag),
439 single=False))
440 item = {}
441 if isinstance(item_list, dict):
...

To Reproduce
Steps to reproduce the behavior:
replace the entry id below with a valid id from op.list_items():
op = OnePassword()
op.get_item(id="valid_id_1234", ["invalid_field1","invalid_field2"])

Expected behavior
return the error without raising a JSONDecodeException

Desktop (please complete the following information):

  • OS: Ubuntu 20.04.6
  • Firefox
    pip 1password == 1.1.3
    op cli version 2.30.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions