Skip to content

Support pydantic.experimental.missing_sentinel.MISSING in ops.Relation.save #2299

@dimaqq

Description

@dimaqq

I've extended the existing test like so:

     class MyPydanticDatabag(pydantic.BaseModel):
-        foo: str
+        foo: str | MISSING = MISSING
         bar: int = pydantic.Field(default=0, ge=0)
         baz: list[str] = pydantic.Field(default_factory=list)
         quux: Nested = pydantic.Field(default_factory=Nested)
+        hah: int | MISSING = MISSING

And that fails with KeyError('hah') at:

/code/operator/test/test_model_relation_data_class.py(407)_on_relation_changed()
-> event.relation.save(data, self.app, encoder=self.encoder)
> /code/operator/ops/model.py(1918)save()
-> data = {field: encoder(values[attr]) for attr, field in sorted(fields.items())}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions