Joar Wandborg [Sun, 10 Mar 2013 21:52:07 +0000 (22:52 +0100)]
OAuth: Support refresh tokens, etc
Initially I was going to write a failing test for refresh tokens. Thus
this fix includes an orphaned 'expect_failure' method in test utils.
I ended up writing support for OAuth refresh tokens, as well as a lot of
cleanup (hopefully) in the OAuth plugin code.
**Rebase**: While waiting for this stuff to be merged, the testing
framework changed, it comes with batteries included regarding fails.
Removed legacy nosetest helper.
Also added a lot of backref=backref([...], cascade='all, delete-orphan')
Christopher Allan Webber [Fri, 5 Apr 2013 00:44:36 +0000 (19:44 -0500)]
Merge branch '614_multi_test_config'
Christopher Allan Webber [Fri, 5 Apr 2013 00:23:04 +0000 (19:23 -0500)]
Switch test_app generation over to use py.test fixtures.
By doing this, we can take advantage of py.test's ability to create
temporary directories that are then cleaned up later during testing.
This helps for sandboxing things.
This also involves a ton of changes:
- Changing the get_app stuff appropriately, getting rid of the
setup_fresh_app decorator
- Making said fixture
- Switching over a billion tests to use it
Christopher Allan Webber [Thu, 4 Apr 2013 16:13:47 +0000 (11:13 -0500)]
Oops, forgot to assign dump_old_app to self, heh.
Christopher Allan Webber [Thu, 4 Apr 2013 16:08:50 +0000 (11:08 -0500)]
Turning setup_fresh_app into SetupFreshApp, a decorator with options!
This way people can pass in particular paste/mediagoblin configs that they want to use.
Christopher Allan Webber [Thu, 4 Apr 2013 15:37:32 +0000 (10:37 -0500)]
Updating get_app to allow for passing in particular app configs
Christopher Allan Webber [Wed, 3 Apr 2013 21:31:42 +0000 (16:31 -0500)]
Also require pytest-xdist!
Christopher Allan Webber [Wed, 3 Apr 2013 20:21:40 +0000 (15:21 -0500)]
Use py.test --boxed for unit tests from now on!
Christopher Allan Webber [Wed, 3 Apr 2013 19:32:35 +0000 (14:32 -0500)]
These tests need to have a MediaGoblin app setup so they can connect to the db!
Thanks to py.test --boxed for helping discover that ;)
Christopher Allan Webber [Wed, 3 Apr 2013 19:05:42 +0000 (14:05 -0500)]
All mediagoblin tests now pass with py.test (switched setUp to setup)
Elrond [Wed, 3 Apr 2013 16:52:17 +0000 (18:52 +0200)]
Create ProcessingState.store_public.
The ideas is by Alon Levy.
Use it in ProcessingState.copy_original for now.
Elrond [Wed, 3 Apr 2013 16:49:46 +0000 (18:49 +0200)]
Little refactoring for images: media_files.
Set the media_files directly at the relvant places.
Elrond [Tue, 26 Mar 2013 13:16:17 +0000 (14:16 +0100)]
A bit of pep8: Remove useless whitespace.
Elrond [Sat, 30 Mar 2013 13:42:45 +0000 (14:42 +0100)]
Merge remote-tracking branch 'JDShu/649_use_form_data_field'
* JDShu/649_use_form_data_field:
Use WTForms data field in user_pages/views.py
Use WTForms data field in auth/views.py
auth: whitespace cleanup in views.py
Use WTForms data field in plugins/oauth/views.py
Use WTForms data field in submit/views.py
Use WTForms data field in edit/views.py
Christopher Allan Webber [Fri, 29 Mar 2013 13:09:36 +0000 (08:09 -0500)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Christopher Allan Webber [Fri, 29 Mar 2013 13:09:26 +0000 (08:09 -0500)]
Warning that raven plugin is somewhat experimental!
Elrond [Fri, 22 Mar 2013 14:45:21 +0000 (15:45 +0100)]
Refactor file field checking.
When uploading, the file field needs some checks, it seems.
So refactor them into check_file_field and use around.
Hans Lo [Thu, 28 Mar 2013 08:15:53 +0000 (04:15 -0400)]
Use WTForms data field in user_pages/views.py
Missed case in a previous commit.
Hans Lo [Thu, 28 Mar 2013 08:13:23 +0000 (04:13 -0400)]
Use WTForms data field in auth/views.py
Hans Lo [Thu, 28 Mar 2013 04:52:24 +0000 (00:52 -0400)]
auth: whitespace cleanup in views.py
Hans Lo [Thu, 28 Mar 2013 04:08:18 +0000 (00:08 -0400)]
Use WTForms data field in plugins/oauth/views.py
Hans Lo [Thu, 28 Mar 2013 03:56:33 +0000 (23:56 -0400)]
Use WTForms data field in submit/views.py
Hans Lo [Thu, 28 Mar 2013 03:56:20 +0000 (23:56 -0400)]
Use WTForms data field in edit/views.py
Elrond [Sun, 24 Mar 2013 15:09:40 +0000 (16:09 +0100)]
piwigo: Fix pwg_getversion
This one needs to return just "2.5.0 (Mediagoblin)" instead
of "Piwigo 2...".
Elrond [Tue, 26 Mar 2013 18:19:32 +0000 (19:19 +0100)]
piwigo: Start at pwg.images.addSimple.
Without a session and a logged in user, this can't go much
further.
Misses check for the file upload field.
Need refactored test tool for this.
Christopher Allan Webber [Mon, 25 Mar 2013 13:01:11 +0000 (08:01 -0500)]
Merge remote-tracking branch 'aeva/671_fix_stl'
Aeva Ntsc [Mon, 25 Mar 2013 12:55:24 +0000 (07:55 -0500)]
Ascii stl files now should have their whitespace stripped when parsing.
Aeva Ntsc [Sun, 24 Mar 2013 21:12:55 +0000 (16:12 -0500)]
Fixed a bug that had binary stls be handled by the ascii stl parser.
Christopher Allan Webber [Sun, 24 Mar 2013 18:25:01 +0000 (13:25 -0500)]
Merge remote-tracking branch 'jdshu/649_use_form_data_field'
Christopher Allan Webber [Sun, 24 Mar 2013 18:22:31 +0000 (13:22 -0500)]
Webtest2 breaks response.cookies stuff for some reason.
I don't understand why but other people do!
This is a terrible commit message and I am sorry for it.
Hans Lo [Sun, 24 Mar 2013 17:56:08 +0000 (13:56 -0400)]
Use WTForms data field in user_pages/views.py
Joar Wandborg [Sun, 24 Mar 2013 17:49:05 +0000 (18:49 +0100)]
Updated VideoThumbnailerMarkII, removed old
Removed the old VideoThumbnailer since it's not used anymore.
VideoThumbnailerMarkII:
Changed the state switching in on_thumbnail_message to only set the
state to "processing thumbnail" if the seek was succesful.
I'm not sure what I'm doing here, but I know at least some of it is
good, and as a whole, it seems to work, so far :)
Christopher Allan Webber [Sun, 24 Mar 2013 14:51:35 +0000 (09:51 -0500)]
Adding documentation on what the $need_arg code in runtests.sh does
Christopher Allan Webber [Thu, 21 Mar 2013 15:08:09 +0000 (10:08 -0500)]
Move description of software stack below description of "What's where"
Elrond [Thu, 21 Mar 2013 08:16:05 +0000 (09:16 +0100)]
piwigo start at pwg.images.addChunk.
This function receives part of an upload. Does most
parameter validation, but does not safe the data anywhere
for now.
Also fake pwg.images.exist
Elrond [Thu, 21 Mar 2013 08:07:59 +0000 (09:07 +0100)]
piwigo: Add session.getStatus, improve categories.getList
- pwg.session.getStatus returns the current user as
"fake_user". When we have a session, we'll return
something better.
- pwg.categories.getList add a name and the parent id for
its one and only "collection".
- Improve logging a bit.
Elrond [Thu, 21 Mar 2013 08:01:48 +0000 (09:01 +0100)]
piwigo: Sent a fake cookie.
shotwell needs a pwg_id cookie to continue.
And really, it's the only cookie it supports, so in the
long run, we need to send a proper session cookie as
pwg_id.
Elrond [Tue, 19 Mar 2013 14:29:01 +0000 (15:29 +0100)]
Add warning README.rst and fix pep8.
Elrond [Tue, 19 Mar 2013 11:07:23 +0000 (12:07 +0100)]
piwigo: Move tool functions into tools.py
Elrond [Tue, 19 Mar 2013 10:45:22 +0000 (11:45 +0100)]
Start at pwg.categories.getList and improve xml output.
- The xml formatting is now in the main function.
- Add PwgNamedArray to have named lists in xml output.
- Remove gmg.test method
Elrond [Tue, 19 Mar 2013 09:18:29 +0000 (10:18 +0100)]
piwigo: start xml response encoding, more (fake) methods.
Elrond [Wed, 13 Mar 2013 13:51:00 +0000 (14:51 +0100)]
Starting a piwigo api plugin.
This one just puts up the basic endpoint, some
infrastructure and a fake login method.
Lots more needed.
Elrond [Tue, 19 Mar 2013 17:52:14 +0000 (18:52 +0100)]
Improve release notes formatting.
The geolocation ini sample needed more indenting and
got a nice "code-block:: ini".
Christopher Allan Webber [Mon, 18 Mar 2013 13:50:29 +0000 (08:50 -0500)]
Point to the Hacking HOWTO
Christopher Allan Webber [Sun, 17 Mar 2013 19:16:19 +0000 (14:16 -0500)]
Better description of the structure of the application
Christopher Allan Webber [Sun, 17 Mar 2013 18:53:45 +0000 (13:53 -0500)]
Clarification on some original design decisions things.
Christopher Allan Webber [Fri, 15 Mar 2013 14:19:22 +0000 (09:19 -0500)]
A more realistic "con" explaination in the docstring of exif_fix_image_orientation
Thanks to dnet for catching this.
This commit sponsored by Chester Zeller. Thanks!
Christopher Allan Webber [Wed, 13 Mar 2013 02:36:05 +0000 (21:36 -0500)]
Remove .pyc files from tarball when running maketarball.sh
Christopher Allan Webber [Wed, 13 Mar 2013 02:35:15 +0000 (21:35 -0500)]
Changing "evil" submission test-script to be a bash script.
Elrond [Sun, 10 Mar 2013 21:33:28 +0000 (22:33 +0100)]
Start a storage section.
With the workbench stuff in it.
Elrond [Fri, 25 Jan 2013 21:43:33 +0000 (22:43 +0100)]
Only create api docs for mediagoblin/
Christopher Allan Webber [Tue, 12 Mar 2013 17:11:55 +0000 (12:11 -0500)]
Now in 0.4.0 dev mode!
Christopher Allan Webber [Tue, 12 Mar 2013 16:49:39 +0000 (11:49 -0500)]
"will now" -> "will not" tyop caught by AVRS... fixed, thanks!
Christopher Allan Webber [Mon, 11 Mar 2013 22:26:22 +0000 (17:26 -0500)]
New version: 0.3.3 !
Christopher Allan Webber [Mon, 11 Mar 2013 22:22:09 +0000 (17:22 -0500)]
Committing extracted and compiled translations
Christopher Allan Webber [Mon, 11 Mar 2013 22:21:53 +0000 (17:21 -0500)]
Committing present MediaGoblin translations before pushing extracted messages
Christopher Allan Webber [Mon, 11 Mar 2013 21:54:41 +0000 (16:54 -0500)]
Fixing dates when uploaded in a video to a mediagoblin instance.
There were some "serializing to json strings" issues. They should be
fixed now... much more careful whitelist and cleaning of the video
"tags" metadata out of gstreamer.
This commit sponsored by Aimee Sullivan. Thanks!
Christopher Allan Webber [Mon, 11 Mar 2013 20:18:24 +0000 (15:18 -0500)]
You can also DELETE accounts now
Christopher Allan Webber [Mon, 11 Mar 2013 18:35:59 +0000 (13:35 -0500)]
Minor release note changes, as suggested by Elrond.
This commit sponsored by Martin Ansdell-Smith. Thanks!
Christopher Allan Webber [Mon, 11 Mar 2013 17:34:02 +0000 (12:34 -0500)]
0.3.3 release notes
Christopher Allan Webber [Sun, 10 Mar 2013 14:56:49 +0000 (09:56 -0500)]
Updating AUTHORS with many more people who deserve to be attributed!
Joar Wandborg [Sun, 10 Mar 2013 22:08:53 +0000 (23:08 +0100)]
Added thingiview.js symlink, fixes webgl view
Elrond [Sun, 10 Mar 2013 19:56:48 +0000 (20:56 +0100)]
655: Fix collection fetching for media_collect()
The problem is:
Collection.query.filter_by(id=X, ...)
1. X = form.collection.data
This works nicely for the completely empty form (X = None).
It does not work for a selected collection, because X
will be the collection, not its id.
2. X = request.form.get('collection') (old code).
This one works mostly, except for the completely empty
form on postgres, because in this case X = u"__None" and
postgres does not like comparing an integer column with
a string.
Fix:
collection = form.collection.data
if collection and collection.creator != request.user.id:
collection = None
Christopher Allan Webber [Sat, 9 Mar 2013 18:18:36 +0000 (12:18 -0600)]
tyop fix in docs, lazyserer.sh->lazyserver.sh
This commit sponsored by S J Bennett. Thanks!
Elrond [Sat, 9 Mar 2013 13:51:01 +0000 (14:51 +0100)]
Change the _original_ design decisions.
- Rename the chapter to "Original *".
- Fix links.
Elrond [Sat, 9 Mar 2013 13:02:01 +0000 (14:02 +0100)]
Revive old "Design Decisions".
This brings back the exact version that was removed in
65e7ce634cfecc87ed6f390f9ccf91be513d2eea.
Christopher Allan Webber [Fri, 8 Mar 2013 20:38:55 +0000 (14:38 -0600)]
Providing warning to users about instability of OAuth/API
Christopher Allan Webber [Wed, 6 Mar 2013 18:05:40 +0000 (12:05 -0600)]
Making a fix so that video codec name switched from "vp8 video" to "vp8"
"vp8 video" is what vp8 is marked as in gstreamer's metadata.
However, the browser expects it just as the name "vp8". So fixing
that.
This commit sponsored by Tyng-Ruey Chuang. Thank you!
Christopher Allan Webber [Tue, 5 Mar 2013 00:05:54 +0000 (18:05 -0600)]
Committing extracted and compiled translations
Christopher Allan Webber [Mon, 4 Mar 2013 21:47:05 +0000 (15:47 -0600)]
Merge branch 'master' into 419_cherrypick_large_uploads
Christopher Allan Webber [Mon, 4 Mar 2013 17:53:04 +0000 (11:53 -0600)]
Removing an unnecessary video write
In the case of if we're skipping transcoding, we don't need to copy
this file at all!
This commit sponsored by Frank Zambrini III. Thanks!
Christopher Allan Webber [Mon, 4 Mar 2013 17:45:27 +0000 (11:45 -0600)]
Merge branch 'joar-skip_transcoding'
Christopher Allan Webber [Mon, 4 Mar 2013 17:45:14 +0000 (11:45 -0600)]
Elrond points out that we should use form.collection.data
That's true; I'm not sure what it's fixing, but he thinks it's fixing
something. Anyway, it's correct :)
This commit sponsored by Philippe Gauthier. Thanks!
Christopher Allan Webber [Mon, 4 Mar 2013 16:57:21 +0000 (10:57 -0600)]
Give a more useful error if a table already exists and so we can't create it during migrations
This commit sponsored by Andrzej Prochyra. Thanks!
Christopher Allan Webber [Mon, 4 Mar 2013 16:12:48 +0000 (10:12 -0600)]
Three fixes to collection adding view, one of them a serious security bug
- Don't let people who aren't the authors of a collection from adding
things to it (handled by forcing the user check in the query)
- request url in case invalid collection selected fixed
- collection_item.author doesn't yet exist; removing the selection
(we might want multiple people to be able to edit a collection in
the future but that future does not yet exist; as Elrond said,
remove this "false hope")
Thanks to Elrond to pointing out these issues.
And thanks to David Kindler for sponsoring this commit!
Christopher Allan Webber [Sun, 3 Mar 2013 22:28:16 +0000 (16:28 -0600)]
self.media_data->self.media_manager in the docstring. Thanks for catching, Elrond.
This commit sponsored by Sebastian Hugentobler. Thank you!
Christopher Allan Webber [Sun, 3 Mar 2013 21:40:49 +0000 (15:40 -0600)]
No reason really to pass in fetch_order anyway...
I think this is legacy code from get_display_media being a utility, or
something. Removed! (Thanks for pointing this out, Elrond!)
This commit sponsored by Tristan Chambers. Thank you!
Sebastian Spaeth [Wed, 19 Dec 2012 10:06:51 +0000 (11:06 +0100)]
Make copying to/from storage systems memory efficient (#419)
The copy_locally and copy_local_to_storage (very inconsistent terms BTW)
were simply slurping in everything in RAM and writing it out at once.
(the copy_locally was actually memory efficient if the remote system was local)
Use shutil.copyfileobj which does chunked reads/writes on file objects.
The default buffer size is 16kb, and as each chunk means a separate HTTP
request for e.g. cloudfiles, we use a chunksize of 4MB here (which has
just been arbitrarily set by me without tests).
This should help with the failure to upload large files issue #419.
Christopher Allan Webber [Sun, 3 Mar 2013 20:29:30 +0000 (14:29 -0600)]
Another elrond suggestion: only init orig_metadata if there's anything in the dict.
This commit sponsored by Joshua Rosen. Thank you!
Christopher Allan Webber [Sun, 3 Mar 2013 20:27:36 +0000 (14:27 -0600)]
Per Elrond's suggestions moving DEFAULT_WEBM_TYPE to media manager
The reason for this is to avoid defining this twice as we were
previously (once in the template, once in video/models.py)
This commit sponsored by Roland McIntosh. Thank you!
Christopher Allan Webber [Sun, 3 Mar 2013 17:41:40 +0000 (11:41 -0600)]
Extrapolate type= based on the video metadata that we have, if we can.
It's kind of awkward because it relies on there being a entry.media_data,
but that's not guaranteed... (see http://issues.mediagoblin.org/ticket/650)
so we use a dopey fallback in the template in that case (kind of
annoying info duplication).
This commit sponsored by Piotr Wieczorek. Thank you!
Christopher Allan Webber [Sun, 3 Mar 2013 17:08:14 +0000 (11:08 -0600)]
Mild cosmetic cleanups to video.html and adding missing </li> elements.
This commit sponsored by Jukka Hellen. Thanks!
Christopher Allan Webber [Sun, 3 Mar 2013 17:03:30 +0000 (11:03 -0600)]
{% set %} the display_type and display_path and use that elsewhere
This will make some stuff a bit cleaner that's coming up...
This commit sponsored by J B Nicholson-Owens. Thanks!
Christopher Allan Webber [Sun, 3 Mar 2013 16:38:06 +0000 (10:38 -0600)]
pdb.set_trace() in mediagoblin code is Not Allowed(TM), removing from audio code
Of course, the version that appears here is not really dangerous
because it's for the "call the file individually" form of debugging,
but it isn't allowed anyway.
This commit sponsored by Michael Faryniarz. Thanks!
Christopher Allan Webber [Sun, 3 Mar 2013 16:36:37 +0000 (10:36 -0600)]
Now store metadata info from processing into the media type.
This comes in several parts:
- Store the metadata from gstreamer during processing
- Add a new JSONEncoded field to the VideoData table
- And, of course, add a migration for that field!
This commit sponsored by Julius Tuomisto. Thank you, Julius!
Joar Wandborg [Sun, 3 Mar 2013 07:48:12 +0000 (08:48 +0100)]
Removed debugging exception
.. that accidentally got included due to not testing the video media
type in the unit tests.
Joar Wandborg [Sun, 3 Mar 2013 01:32:03 +0000 (02:32 +0100)]
Updated raven plugin
- Added wrap_wsgi, celery_setup, celery_logging_setup hooks
- Updated raven plugin docs
- Updated production considerations docs
- Added raven logging setup
Christopher Allan Webber [Sun, 3 Mar 2013 01:06:31 +0000 (19:06 -0600)]
Huge amount of work to (mostly) allow .ogg (and maybe other) formats to skip transcode
- Update get_display_media in several ways:
- now uses the media type's own declaration of the order of things
- returns both the media_size and the media_path, as per the docstring
- implicitly uses self.media_files as opposed to forcing you to pass it in
- update videos to use get_display_media
- update images to declare media_fetch_order in the media manager (videos also)
- update stl to use media.media_files['original'] instead of weird
use of get_display_media
- update sidebar to only conditionally show webm_640
TODO still: identify video type information *during* processing, show
that in the <video><source /></video> element.
This commit sponsored by Nathan Yergler. Thanks, nyergler!
Joar Wandborg [Sat, 23 Feb 2013 23:23:05 +0000 (00:23 +0100)]
plugin/raven: Fix paster's celery config issue
Check for CELERY_CONFIG_MODULE before we import raven.contrib.celery. It
seems that the import otherwise sets up the celery client before we get
to pass it our mediagoblin-specific settings.
Joar Wandborg [Fri, 22 Feb 2013 23:06:52 +0000 (00:06 +0100)]
Added raven plugin docs to docs
Joar Wandborg [Fri, 22 Feb 2013 23:02:39 +0000 (00:02 +0100)]
Removed stray )
Joar Wandborg [Fri, 22 Feb 2013 22:47:55 +0000 (23:47 +0100)]
Removed PLUGIN_DIR from raven
Joar Wandborg [Fri, 22 Feb 2013 22:46:36 +0000 (23:46 +0100)]
Don't look for the oauth config in raven plugin
Joar Wandborg [Fri, 22 Feb 2013 22:44:17 +0000 (23:44 +0100)]
Refactored raven plugin
Joar Wandborg [Fri, 22 Feb 2013 22:42:29 +0000 (23:42 +0100)]
Added raven plugin
Joar Wandborg [Sat, 2 Mar 2013 23:11:34 +0000 (00:11 +0100)]
Added .send method to cloudfiles storage object
.. wrapper. Also added some logging - A .warn() for the legacy .write()
method and a .debug() for the new copy_local_to_storage()
Sebastian Spaeth [Wed, 19 Dec 2012 14:59:44 +0000 (15:59 +0100)]
Make Cloudfiles copy memory efficient too (#419)
It seems that (our implementation of) cloudfiles.write() takes
all existing data and appends write(data) to it, sending the
full monty over the wire everytime. This would of course
absolutely kill chunked writes with some O(1^n) performance
and bandwidth usage. So, override this method and use the
Cloudfile's "send" interface instead.
Also make the Cloudfile file wrapper an iterator that allows us to
simply do "for data in cloudfile:" which will stream the data in a
memory-efficient way.
DO NOTE THAT THIS PATCH IS COMPLETELY UNTESTED DUE TO LACK OF SETUP
PLEASE REVIEW AND VERIFY.
Joar Wandborg [Sat, 2 Mar 2013 22:40:24 +0000 (23:40 +0100)]
Fixed hidden fields in oauth client authorization
Removed the translation marking and passed in empty strings to avoid
WTForms automagically creating the labels from the field names (i.e.
client_id => 'Client Id').
Joar Wandborg [Sat, 2 Mar 2013 22:17:50 +0000 (23:17 +0100)]
Do not encode the next kwarg twice
Elrond [Sat, 2 Mar 2013 15:02:51 +0000 (16:02 +0100)]
Turn "License preference" into a normal field.
instead of rendering it by hand, use the normal field
rendering tools.
Old:
[choose box] License preference
New:
License preference
[choose box]
This will be your default license on upload forms.