make media_manager a property of MediaEntry in mixin.py
authorSebastian Spaeth <Sebastian@SSpaeth.de>
Tue, 4 Dec 2012 08:57:56 +0000 (09:57 +0100)
committerSebastian Spaeth <Sebastian@SSpaeth.de>
Tue, 4 Dec 2012 14:15:41 +0000 (15:15 +0100)
commit5f8b4ae895ecb228c5f5d615818ffe0a06a30473
tree2ead38386621af120360ae9f1b5b59e235bc060a
parentc39b9afc83d5e0bfd9312d762a7b16955ba949ca
make media_manager a property of MediaEntry in mixin.py

In all cases where get_media_manager(_media_type_as_string) was called in
our code base we ultimately passed in a "MediaEntry().media_type" to get
the matching MEDIA_MANAGER. It so makes sense to make this a function of
the MediaEntry rather than a global function in mediagoblin.media_types and
passing around media_entry.media_type as arguments all the time.

It saves a few import statements and arguments. I also made it so the
Media_manager property is cached for subsequent calls, although I am not too
sure that this is needed (there are other cases for which this would make
more sense)

Also add a get_media_manager test to the media submission tests. It submits
an image and checks that both media.media_type and media.media_manager
return the right thing. Not sure if these tests could not be merged with an
existing submission test, but it can't hurt to have things explicit.

TODO: Right now we iterate through all existing media_managers to find the
right one based on the string of its module name. This should be made a simple
dict lookup to avoid all the extra work.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
mediagoblin/db/mixin.py
mediagoblin/media_types/__init__.py
mediagoblin/processing/task.py
mediagoblin/tests/test_submission.py
mediagoblin/user_pages/views.py