Skip to content

Commit

Permalink
DSS message functions
Browse files Browse the repository at this point in the history
* Add functions to create message attributes and body
* Add corresponding unit tests

* https://mitlibraries.atlassian.net/browse/DLSPP-71
  • Loading branch information
ehanson8 committed Oct 19, 2021
1 parent f072538 commit ed5ca73
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 1 deletion.
31 changes: 31 additions & 0 deletions awd/dss.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
def create_dss_message_attributes(package_id, submission_source, output_queue):
"""Create attributes for a DSpace Submission Service message."""
message_attributes = {
"PackageID": {"DataType": "String", "StringValue": package_id},
"SubmissionSource": {"DataType": "String", "StringValue": submission_source},
"OutputQueue": {"DataType": "String", "StringValue": output_queue},
}
return message_attributes


def create_dss_message_body(
submission_system,
collection_handle,
metadata_s3_uri,
bitstream_name,
bitstream_s3_uri,
):
"""Create body for a DSpace Submission Service message."""
message_body = {
"SubmissionSystem": submission_system,
"CollectionHandle": collection_handle,
"MetadataLocation": metadata_s3_uri,
"Files": [
{
"BitstreamName": bitstream_name,
"FileLocation": bitstream_s3_uri,
"BitstreamDescription": None,
}
],
}
return message_body
2 changes: 1 addition & 1 deletion awd/s3.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def __init__(self):
self.client = client("s3")

def put_file(self, file, bucket, key):
""""""
"""Put a file in a specified S3 bucket with a specified key."""
response = self.client.put_object(
Body=file,
Bucket=bucket,
Expand Down
34 changes: 34 additions & 0 deletions tests/test_dss.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
from awd import dss


def test_create_dss_message_attributes():
message_attributes = dss.create_dss_message_attributes(
"123", "Submission system", "DSS queue"
)
assert message_attributes == {
"PackageID": {"DataType": "String", "StringValue": "123"},
"SubmissionSource": {"DataType": "String", "StringValue": "Submission system"},
"OutputQueue": {"DataType": "String", "StringValue": "DSS queue"},
}


def test_create_dss_message_body():
message_body = dss.create_dss_message_body(
"DSpace",
"123.4/5678",
"mock://bucket/456.json",
"456.pdf",
"mock://bucket/456.pdf",
)
assert message_body == {
"SubmissionSystem": "DSpace",
"CollectionHandle": "123.4/5678",
"MetadataLocation": "mock://bucket/456.json",
"Files": [
{
"BitstreamName": "456.pdf",
"FileLocation": "mock://bucket/456.pdf",
"BitstreamDescription": None,
}
],
}

0 comments on commit ed5ca73

Please sign in to comment.