Or rather, reimplement one of Berker's fixes and add one of mine:
- add back the http_auth_headers fix Berker wrote
- decode to json when testing the response.body, since we have no
idea what the order will be here
Also, upgrading seems to fix weird
"RuntimeError: dictionary changed size during iteration" issues
I was seeing. (Looked like a gunicorn issue, not ours.)
- Don't run dbupdate... the tests themselves do this, and we might
mess up someone's db
- We shouldn't run setup.py develop because that installs a new
*live* db... the tests do isolation, so...
- Install the package's dependencies by the package itself... it
seems that removing "skipsdist = True" fixes this
- Run py.test manually rather than use runtests.sh (which itself uses
./bin/py.test if it can)
- Make changes to objectType to be more pythonic "object_type"
- Move object_type to mixins rather than be on the models
- Convert migrations to sqlalchemy core rather than ORM (fix)
- Change TYPES to use descriptive strings rather than numbers
- This has introduced a intermediatory table between object/target and
the activity. This allows for multiple activities to be associated
with one object/target.
- This moves some of the methods off Activity model into a mixin which
didn't need to interact with database things.
- This also cleaned up the migrations as well as adding retroactive
creation of activities for collection creation.
This adds betters upport for targets in the content generation
and on the model itself. Adding getters for properties which would
otherwise require looking up e.g. get_author.
This creates the Activity and Genrator models from the Activity
Streams spec and. I then created a migration which retro-actively
create activities for media uploaded and comments created. Through
out the code I've added so automatically activties are created when
a user peforms an action (uploading media, commenting, etc.).
This is Elronds change on #948. As 'blog_slug' is always
set in request.matchdict there is no need to do a default-none
get on the dictionary. This change just makes it easier to read.
The blog_post_listing function in mediagoblin/media_types/blow/views.py
attempts to access blogs based on the requesting user rather than the url
user. This results in server errors when an unauthenticated user attempts to
follow a link from another user's blog post listing, and 404 errors when an
authenticated user attempts to follow a link from another user's blog post
listing.
This change bases blog post listings on the URL user rather than the request
user.