diff --git a/invenio_records_files/__init__.py b/invenio_records_files/__init__.py index b69ec1c..fa580dc 100644 --- a/invenio_records_files/__init__.py +++ b/invenio_records_files/__init__.py @@ -145,6 +145,7 @@ ... print(k) bucket checksum +file_id filetype key size diff --git a/invenio_records_files/api.py b/invenio_records_files/api.py index 0e93ce7..a568dd9 100644 --- a/invenio_records_files/api.py +++ b/invenio_records_files/api.py @@ -73,6 +73,7 @@ def dumps(self): 'key': self.obj.key, # IMPORTANT it must stay here! 'size': self.obj.file.size, 'version_id': str(self.obj.version_id), + 'file_id': str(self.obj.file.id) }) return self.data diff --git a/tests/test_invenio_records_files.py b/tests/test_invenio_records_files.py index c1f8256..f1a3037 100644 --- a/tests/test_invenio_records_files.py +++ b/tests/test_invenio_records_files.py @@ -152,6 +152,18 @@ def test_files_extra_data(app, db, location, record_with_bucket): assert record.files['hello.txt'].get(k) +def test_files_extra_data_in_dump(app, db, location, record_with_bucket): + """Test if all neccessary properties are included in dumps() method.""" + record = record_with_bucket + + # Create a file. + record.files['hello.txt'] = BytesIO(b'Hello world!') + record['_files'] = record.files.dumps() + + for k in ['bucket', 'checksum', 'key', 'size', 'version_id', 'file_id']: + assert k in record['_files'][0] + + def test_files_protection(app, db, location, record_with_bucket): """Test record files property protection.""" record = record_with_bucket