Skip to content

Commit

Permalink
Misc updates to make sure the basename gets properly plumbed to the f…
Browse files Browse the repository at this point in the history
…rame

Also update a few tests
  • Loading branch information
Matt Daily committed May 10, 2024
1 parent 439b120 commit 8097087
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 7 deletions.
5 changes: 4 additions & 1 deletion archive/frames/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,10 @@ def filename(self):

@cached_property
def url(self):
path = get_file_store_path(self.filename, self.frame.get_header_dict())
metadata = self.frame.get_header_dict()
metadata['size'] = self.size
metadata['frame_basename'] = self.frame.basename
path = get_file_store_path(self.filename, metadata)
file_store = FileStoreFactory.get_file_store_class()()
return file_store.get_url(path, self.key, expiration=3600 * 48)

Expand Down
3 changes: 2 additions & 1 deletion archive/frames/tests/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ class Meta:
model = Thumbnail

size = factory.fuzzy.FuzzyChoice(['small', 'medium', 'large'])
filename = factory.fuzzy.FuzzyText(length=10, suffix='.jpg')
basename = factory.fuzzy.FuzzyText(length=10)
extension = factory.fuzzy.FuzzyChoice(['.jpeg', '.jpg'])
key = factory.fuzzy.FuzzyText(length=32)
frame = factory.SubFactory('archive.frames.tests.factories.FrameFactory')
4 changes: 2 additions & 2 deletions archive/frames/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -791,12 +791,12 @@ def setUp(self):

def test_get_thumbnail(self):
response = self.client.get(reverse('thumbnail-detail', args=(self.thumbnail.id,)))
self.assertEqual(response.json()['filename'], self.thumbnail.filename)
self.assertEqual(response.json()['basename'], self.thumbnail.basename)

def test_get_thumbnail_list(self):
response = self.client.get(reverse('thumbnail-list'))
self.assertEqual(len(response.json()), 5)
self.assertContains(response, self.thumbnails[0].filename)
self.assertContains(response, self.thumbnails[0].basename)

def test_get_thumbnail_list_filtered_by_frame_attribute(self):
response = self.client.get(reverse('thumbnail-list') + '?proposal_id=' + self.thumbnails[0].frame.proposal_id)
Expand Down
6 changes: 3 additions & 3 deletions archive/frames/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -466,9 +466,9 @@ def retrieve(self, request, *args, **kwargs):
return Response(instance.as_dict())

def create(self, request):
filename = request.data.get('filename')
basename = request.data.get('basename')
logger_tags = {'tags': {
'filename': filename,
'filename': basename,
'request_id': request.data.get('request_id')
}}
logger.info('Got request to process thumbnail', extra=logger_tags)
Expand All @@ -485,7 +485,7 @@ def create(self, request):
if thumbnail_serializer.is_valid():
# remove the version set as this version does not correspond to the frame object, but rather the thumbnail.
del frame_serializer.validated_data['version_set']
frame = frame_serializer.save()
frame = frame_serializer.save(basename=request.data['frame_basename'])

thumbnail = thumbnail_serializer.save(frame=frame)
logger_tags['tags']['id'] = thumbnail.id
Expand Down

0 comments on commit 8097087

Please sign in to comment.