Skip to content

[Bug]: Invenio's demo record fixture fails due to addition of custom field #52

@anilnatha

Description

@anilnatha

The create_demo_record fixture is failing because it isn't configured with information to populate the mdps:software_repository_url custom field we added.

We need to decide on a course of action:

  1. Do we want to, and can, disable this fixture so that it doesn't error during local development.

OR

  1. Investigate how to update the fixture to auto install test records that conform to the needs of our custom fields. For local development, having this fixture is helpful so that we have test records automatically inserted for us.

OR

  1. Ignore the issue as it isn't technically breaking our installation.

Error log when invenio-cli run is executed:

...
[2025-08-18 14:14:15,847: ERROR/ForkPoolWorker-10] Task invenio_rdm_records.fixtures.tasks.create_demo_record[fdab46af-47c0-43a1-988a-6f9776cbff2c] raised unexpected: ValidationError({'custom_fields': {'mdps:software_repository_url': ['You must provide the software repository URL.']}})
Traceback (most recent call last):
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/celery/app/trace.py", line 453, in trace_task
    R = retval = fun(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/flask_celeryext/app.py", line 71, in __call__
    return Task.__call__(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/celery/app/trace.py", line 736, in __protected_call__
    return self.run(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/invenio_rdm_records/fixtures/tasks.py", line 80, in create_demo_record
    service.publish(id_=draft.id, identity=identity)
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/invenio_db/uow.py", line 251, in inner
    res = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/invenio_rdm_records/services/services.py", line 432, in publish
    return super().publish(identity, id_, uow=uow, expand=expand)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/invenio_db/uow.py", line 255, in inner
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/invenio_drafts_resources/services/records/service.py", line 410, in publish
    self._validate_draft(identity, draft)
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/invenio_drafts_resources/services/records/service.py", line 626, in _validate_draft
    self.schema.load(
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/invenio_records_resources/services/records/schema.py", line 90, in load
    valid_data = self.schema(context=context, **schema_args).load(data)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/marshmallow/schema.py", line 792, in load
    return self._do_load(
           ^^^^^^^^^^^^^^
  File "/Users/anatha/Projects/Unity/Repos/mdps-application-catalog/.venv/lib/python3.12/site-packages/marshmallow/schema.py", line 999, in _do_load
    raise exc
marshmallow.exceptions.ValidationError: {'custom_fields': {'mdps:software_repository_url': ['You must provide the software repository URL.']}}
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    U-ADSbugSomething isn't working

    Type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions