From: tilly-Q Date: Tue, 20 Aug 2013 19:11:02 +0000 (-0400) Subject: This commit was just to fix a few of the errors with the merging and to X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=2c901db023cd29d8f12408470245c9a5b8b911f1;p=mediagoblin.git This commit was just to fix a few of the errors with the merging and to make sure that all of the previous tests work fine. --- diff --git a/mediagoblin/auth/tools.py b/mediagoblin/auth/tools.py index 596a4447..f758bca4 100644 --- a/mediagoblin/auth/tools.py +++ b/mediagoblin/auth/tools.py @@ -21,7 +21,7 @@ from sqlalchemy import or_ from mediagoblin import mg_globals from mediagoblin.tools.crypto import get_timed_signer_url -from mediagoblin.db.models import User +from mediagoblin.db.models import User, Privilege from mediagoblin.tools.mail import (normalize_email, send_email, email_debug_message) from mediagoblin.tools.template import render_template diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 0eedc5d4..762d17e6 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -383,79 +383,6 @@ def pw_hash_nullable(db): constraint = UniqueConstraint('username', table=user_table) constraint.create() -class ReportBase_v0(declarative_base()): - __tablename__ = 'core__reports' - id = Column(Integer, primary_key=True) - reporter_id = Column(Integer, ForeignKey(User.id), nullable=False) - report_content = Column(UnicodeText) - reported_user_id = Column(Integer, ForeignKey(User.id), nullable=False) - created = Column(DateTime, nullable=False, default=datetime.datetime.now) - discriminator = Column('type', Unicode(50)) - __mapper_args__ = {'polymorphic_on': discriminator} - -class CommentReport_v0(ReportBase_v0): - __tablename__ = 'core__reports_on_comments' - __mapper_args__ = {'polymorphic_identity': 'comment_report'} - - id = Column('id',Integer, ForeignKey('core__reports.id'), - primary_key=True) - comment_id = Column(Integer, ForeignKey(MediaComment.id), nullable=False) - -class MediaReport_v0(ReportBase_v0): - __tablename__ = 'core__reports_on_media' - __mapper_args__ = {'polymorphic_identity': 'media_report'} - - id = Column('id',Integer, ForeignKey('core__reports.id'), primary_key=True) - media_entry_id = Column(Integer, ForeignKey(MediaEntry.id), nullable=False) - -class ArchivedReport_v0(ReportBase_v0): - __tablename__ = 'core__reports_archived' - __mapper_args__ = {'polymorphic_identity': 'archived_report'} - - id = Column('id',Integer, ForeignKey('core__reports.id'), primary_key=True) - media_entry_id = Column(Integer, ForeignKey(MediaEntry.id)) - comment_id = Column(Integer, ForeignKey(MediaComment.id)) - resolver_id = Column(Integer, ForeignKey(User.id), nullable=False) - resolved_time = Column(DateTime) - result = Column(UnicodeText) - -class UserBan_v0(declarative_base()): - __tablename__ = 'core__user_bans' - user_id = Column('id',Integer, ForeignKey(User.id), nullable=False, - primary_key=True) - expiration_date = Column(DateTime) - reason = Column(UnicodeText, nullable=False) - -class Privilege_v0(declarative_base()): - __tablename__ = 'core__privileges' - id = Column(Integer, nullable=False, primary_key=True, unique=True) - privilege_name = Column(Unicode, nullable=False, unique=True) - -class PrivilegeUserAssociation_v0(declarative_base()): - __tablename__ = 'core__privileges_users' - group_id = Column( - 'core__privilege_id', - Integer, - ForeignKey(User.id), - primary_key=True) - user_id = Column( - 'core__user_id', - Integer, - ForeignKey(Privilege.id), - primary_key=True) - -@RegisterMigration(14, MIGRATIONS) -def create_moderation_tables(db): - ReportBase_v0.__table__.create(db.bind) - CommentReport_v0.__table__.create(db.bind) - MediaReport_v0.__table__.create(db.bind) - ArchivedReport_v0.__table__.create(db.bind) - UserBan_v0.__table__.create(db.bind) - Privilege_v0.__table__.create(db.bind) - PrivilegeUserAssociation_v0.__table__.create(db.bind) - db.commit() - - # oauth1 migrations class Client_v0(declarative_base()): """ @@ -533,3 +460,77 @@ def create_oauth1_tables(db): NonceTimestamp_v0.__table__.create(db.bind) db.commit() + +class ReportBase_v0(declarative_base()): + __tablename__ = 'core__reports' + id = Column(Integer, primary_key=True) + reporter_id = Column(Integer, ForeignKey(User.id), nullable=False) + report_content = Column(UnicodeText) + reported_user_id = Column(Integer, ForeignKey(User.id), nullable=False) + created = Column(DateTime, nullable=False, default=datetime.datetime.now) + discriminator = Column('type', Unicode(50)) + __mapper_args__ = {'polymorphic_on': discriminator} + +class CommentReport_v0(ReportBase_v0): + __tablename__ = 'core__reports_on_comments' + __mapper_args__ = {'polymorphic_identity': 'comment_report'} + + id = Column('id',Integer, ForeignKey('core__reports.id'), + primary_key=True) + comment_id = Column(Integer, ForeignKey(MediaComment.id), nullable=False) + +class MediaReport_v0(ReportBase_v0): + __tablename__ = 'core__reports_on_media' + __mapper_args__ = {'polymorphic_identity': 'media_report'} + + id = Column('id',Integer, ForeignKey('core__reports.id'), primary_key=True) + media_entry_id = Column(Integer, ForeignKey(MediaEntry.id), nullable=False) + +class ArchivedReport_v0(ReportBase_v0): + __tablename__ = 'core__reports_archived' + __mapper_args__ = {'polymorphic_identity': 'archived_report'} + + id = Column('id',Integer, ForeignKey('core__reports.id'), primary_key=True) + media_entry_id = Column(Integer, ForeignKey(MediaEntry.id)) + comment_id = Column(Integer, ForeignKey(MediaComment.id)) + resolver_id = Column(Integer, ForeignKey(User.id), nullable=False) + resolved_time = Column(DateTime) + result = Column(UnicodeText) + +class UserBan_v0(declarative_base()): + __tablename__ = 'core__user_bans' + user_id = Column('id',Integer, ForeignKey(User.id), nullable=False, + primary_key=True) + expiration_date = Column(DateTime) + reason = Column(UnicodeText, nullable=False) + +class Privilege_v0(declarative_base()): + __tablename__ = 'core__privileges' + id = Column(Integer, nullable=False, primary_key=True, unique=True) + privilege_name = Column(Unicode, nullable=False, unique=True) + +class PrivilegeUserAssociation_v0(declarative_base()): + __tablename__ = 'core__privileges_users' + group_id = Column( + 'core__privilege_id', + Integer, + ForeignKey(User.id), + primary_key=True) + user_id = Column( + 'core__user_id', + Integer, + ForeignKey(Privilege.id), + primary_key=True) + +@RegisterMigration(15, MIGRATIONS) +def create_moderation_tables(db): + ReportBase_v0.__table__.create(db.bind) + CommentReport_v0.__table__.create(db.bind) + MediaReport_v0.__table__.create(db.bind) + ArchivedReport_v0.__table__.create(db.bind) + UserBan_v0.__table__.create(db.bind) + Privilege_v0.__table__.create(db.bind) + PrivilegeUserAssociation_v0.__table__.create(db.bind) + db.commit() + + diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 25b4fa8f..62c5a5d5 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -649,6 +649,10 @@ class ProcessingNotification(Notification): 'polymorphic_identity': 'processing_notification' } +with_polymorphic( + Notification, + [ProcessingNotification, CommentNotification]) + class ReportBase(Base): """ This is the basic report table which the other reports are based off of. @@ -828,16 +832,13 @@ class PrivilegeUserAssociation(Base): ForeignKey(Privilege.id), primary_key=True) -with_polymorphic( - Notification, - [ProcessingNotification, CommentNotification]) - MODELS = [ User, MediaEntry, Tag, MediaTag, MediaComment, Collection, CollectionItem, MediaFile, FileKeynames, MediaAttachmentFile, ProcessingMetaData, - Notification, CommentNotification, ProcessingNotification, + Notification, CommentNotification, ProcessingNotification, Client, CommentSubscription, ReportBase, CommentReport, MediaReport, UserBan, - Privilege, PrivilegeUserAssociation, ArchivedReport, ArchivedReport] + Privilege, PrivilegeUserAssociation, ArchivedReport, + RequestToken, AccessToken, NonceTimestamp] """ Foundations are the default rows that are created immediately after the tables diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 7d7748ac..11ed83bd 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -342,6 +342,7 @@ def authentication_disabled_app(request): def test_authentication_disabled_app(authentication_disabled_app): # app.auth should = false + assert mg_globals assert mg_globals.app.auth is False # Try to visit register page diff --git a/mediagoblin/tests/test_edit.py b/mediagoblin/tests/test_edit.py index d70d0478..8db8a00d 100644 --- a/mediagoblin/tests/test_edit.py +++ b/mediagoblin/tests/test_edit.py @@ -27,7 +27,8 @@ class TestUserEdit(object): def setup(self): # set up new user self.user_password = u'toast' - self.user = fixture_add_user(password = self.user_password) + self.user = fixture_add_user(password = self.user_password, + privileges=[u'active']) def login(self, test_app): test_app.post( @@ -52,7 +53,8 @@ class TestUserEdit(object): # deleted too. Perhaps in submission test? #Restore user at end of test - self.user = fixture_add_user(password = self.user_password) + self.user = fixture_add_user(password = self.user_password, + privileges=[u'active']) self.login(test_app) @@ -115,7 +117,8 @@ class TestUserEdit(object): assert test_user.url == u'http://dustycloud.org/' # change a different user than the logged in (should fail with 403) - fixture_add_user(username=u"foo") + fixture_add_user(username=u"foo", + privileges=[u'active']) res = test_app.post( '/u/foo/edit/', { 'bio': u'I love toast!', diff --git a/mediagoblin/tests/test_notifications.py b/mediagoblin/tests/test_notifications.py index d52b8d5a..8420e358 100644 --- a/mediagoblin/tests/test_notifications.py +++ b/mediagoblin/tests/test_notifications.py @@ -38,7 +38,7 @@ class TestNotifications: # TODO: Possibly abstract into a decorator like: # @as_authenticated_user('chris') - self.test_user = fixture_add_user() + self.test_user = fixture_add_user(privileges=[u'active',u'commenter']) self.current_user = None @@ -75,7 +75,10 @@ class TestNotifications: ''' user = fixture_add_user('otherperson', password='nosreprehto', - wants_comment_notification=wants_email) + wants_comment_notification=wants_email, + privileges=[u'active',u'commenter']) + + assert user.wants_comment_notification == wants_email user_id = user.id @@ -124,6 +127,8 @@ otherperson@example.com\n\nSGkgb3RoZXJwZXJzb24sCmNocmlzIGNvbW1lbnRlZCBvbiB5b3VyI else: assert mail.EMAIL_TEST_MBOX_INBOX == [] + mail.EMAIL_TEST_MBOX_INBOX = [] + # Save the ids temporarily because of DetachedInstanceError notification_id = notification.id comment_id = notification.subject.id diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index ac941063..dbdf87e9 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -46,7 +46,7 @@ class TestSubmission: # TODO: Possibly abstract into a decorator like: # @as_authenticated_user('chris') - test_user = fixture_add_user() + test_user = fixture_add_user(privileges=[u'active',u'uploader']) self.test_user = test_user diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py index ec17d791..feb83b44 100644 --- a/mediagoblin/tests/tools.py +++ b/mediagoblin/tests/tools.py @@ -133,7 +133,6 @@ def get_app(request, paste_config=None, mgoblin_config=None): mg_globals.app.meddleware.insert(0, TestingMeddleware(mg_globals.app)) app = TestApp(test_app) - return app