aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin
diff options
context:
space:
mode:
authortilly-Q <nattilypigeonfowl@gmail.com>2013-08-20 15:11:02 -0400
committertilly-Q <nattilypigeonfowl@gmail.com>2013-08-20 15:24:29 -0400
commit2c901db023cd29d8f12408470245c9a5b8b911f1 (patch)
tree658dcc580781c1bc09d67346f78f007305263ce6 /mediagoblin
parent9e204e49c9670b0e004dc9b62bf3b698b7534325 (diff)
downloadmediagoblin-2c901db023cd29d8f12408470245c9a5b8b911f1.tar.lz
mediagoblin-2c901db023cd29d8f12408470245c9a5b8b911f1.tar.xz
mediagoblin-2c901db023cd29d8f12408470245c9a5b8b911f1.zip
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.
Diffstat (limited to 'mediagoblin')
-rw-r--r--mediagoblin/auth/tools.py2
-rw-r--r--mediagoblin/db/migrations.py147
-rw-r--r--mediagoblin/db/models.py13
-rw-r--r--mediagoblin/tests/test_auth.py1
-rw-r--r--mediagoblin/tests/test_edit.py9
-rw-r--r--mediagoblin/tests/test_notifications.py9
-rw-r--r--mediagoblin/tests/test_submission.py2
-rw-r--r--mediagoblin/tests/tools.py1
8 files changed, 97 insertions, 87 deletions
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