Patch by Strum. Ticket #451 - Convert all mongokit style .find, .find_one, .one calls...
authorRodney Ewing <ewing.rj@gmail.com>
Thu, 11 Jul 2013 21:17:50 +0000 (14:17 -0700)
committerRodney Ewing <ewing.rj@gmail.com>
Thu, 11 Jul 2013 21:17:50 +0000 (14:17 -0700)
12 files changed:
mediagoblin/db/base.py
mediagoblin/db/util.py
mediagoblin/decorators.py
mediagoblin/edit/views.py
mediagoblin/gmg_commands/import_export.py
mediagoblin/gmg_commands/users.py
mediagoblin/submit/views.py
mediagoblin/tests/test_auth.py
mediagoblin/tests/test_edit.py
mediagoblin/tests/test_openid.py
mediagoblin/tests/test_submission.py
mediagoblin/tests/tools.py

index 699a503abf4f04e4ce1fc729d7ff4ceeee883d5f..c0cefdc27024d2c9ba44c957f00c8baafc0c65ec 100644 (file)
@@ -24,18 +24,6 @@ Session = scoped_session(sessionmaker())
 class GMGTableBase(object):
     query = Session.query_property()
 
-    @classmethod
-    def find(cls, query_dict):
-        return cls.query.filter_by(**query_dict)
-
-    @classmethod
-    def find_one(cls, query_dict):
-        return cls.query.filter_by(**query_dict).first()
-
-    @classmethod
-    def one(cls, query_dict):
-        return cls.find(query_dict).one()
-
     def get(self, key):
         return getattr(self, key)
 
index 6ffec44da18e58665119c4fb4ba05ab87fbda666..8431361a89fc6dc6d22c962e238816fb9e3e0e60 100644 (file)
@@ -24,7 +24,7 @@ from mediagoblin.db.models import MediaEntry, Tag, MediaTag, Collection
 
 
 def atomic_update(table, query_dict, update_values):
-    table.find(query_dict).update(update_values,
+    table.query.filter_by(**query_dict).update(update_values,
        synchronize_session=False)
     Session.commit()
 
index ece222f5d7ce29e8bbf5dfd2bcbd5d156be50dcc..ca7be53cf3083194ac8ff9e05ee48dbfd62403f2 100644 (file)
@@ -87,8 +87,8 @@ def user_may_alter_collection(controller):
     """
     @wraps(controller)
     def wrapper(request, *args, **kwargs):
-        creator_id = request.db.User.find_one(
-            {'username': request.matchdict['user']}).id
+        creator_id = request.db.User.query.filter_by(
+            username=request.matchdict['user']).first().id
         if not (request.user.is_admin or
                 request.user.id == creator_id):
             raise Forbidden()
@@ -162,15 +162,15 @@ def get_user_collection(controller):
     """
     @wraps(controller)
     def wrapper(request, *args, **kwargs):
-        user = request.db.User.find_one(
-            {'username': request.matchdict['user']})
+        user = request.db.User.query.filter_by(
+            username=request.matchdict['user']).first()
 
         if not user:
             return render_404(request)
 
-        collection = request.db.Collection.find_one(
-            {'slug': request.matchdict['collection'],
-             'creator': user.id})
+        collection = request.db.Collection.query.filter_by(
+            slug=request.matchdict['collection'],
+            creator=user.id).first()
 
         # Still no collection?  Okay, 404.
         if not collection:
@@ -187,14 +187,14 @@ def get_user_collection_item(controller):
     """
     @wraps(controller)
     def wrapper(request, *args, **kwargs):
-        user = request.db.User.find_one(
-            {'username': request.matchdict['user']})
+        user = request.db.User.query.filter_by(
+            username=request.matchdict['user']).first()
 
         if not user:
             return render_404(request)
 
-        collection_item = request.db.CollectionItem.find_one(
-            {'id': request.matchdict['collection_item'] })
+        collection_item = request.db.CollectionItem.query.filter_by(
+            id=request.matchdict['collection_item']).first()
 
         # Still no collection item?  Okay, 404.
         if not collection_item:
index 7a8d6185123dff9401f7032c332b6d061279c76b..6aa2acd94d5d3d5b1019b87968193f076af80e25 100644 (file)
@@ -305,9 +305,9 @@ def edit_collection(request, collection):
                 form.slug.data, collection.id)
 
         # Make sure there isn't already a Collection with this title
-        existing_collection = request.db.Collection.find_one({
-                'creator': request.user.id,
-                'title':form.title.data})
+        existing_collection = request.db.Collection.query.filter_by(
+                creator=request.user.id,
+                title=form.title.data).first()
 
         if existing_collection and existing_collection.id != collection.id:
             messages.add_message(
index d51a1e3e66e2dcc4f6307b80b10a0d6bcb5d3216..98ec617d9d30432ee35a7870f5756de56bf7eeb8 100644 (file)
@@ -63,7 +63,7 @@ def _import_media(db, args):
     # TODO: Add import of queue files
     queue_cache = BasicFileStorage(args._cache_path['queue'])
 
-    for entry in db.MediaEntry.find():
+    for entry in db.MediaEntry.query.filter_by():
         for name, path in entry.media_files.items():
             _log.info('Importing: {0} - {1}'.format(
                     entry.title.encode('ascii', 'replace'),
@@ -204,7 +204,7 @@ def _export_media(db, args):
     # TODO: Add export of queue files
     queue_cache = BasicFileStorage(args._cache_path['queue'])
 
-    for entry in db.MediaEntry.find():
+    for entry in db.MediaEntry.query.filter_by():
         for name, path in entry.media_files.items():
             _log.info(u'Exporting {0} - {1}'.format(
                     entry.title,
index 1f3294598f18e7cd94d0c2aad47240de1e80a3ff..e44b0aa9b481bbee3f9d653c48602de6f7605843 100644 (file)
@@ -40,9 +40,9 @@ def adduser(args):
 
     db = mg_globals.database
     users_with_username = \
-        db.User.find({
-            'username': args.username.lower(),
-        }).count()
+        db.User.query.filter_by(
+            username=args.username.lower()
+        ).count()
 
     if users_with_username:
         print u'Sorry, a user with that name already exists.'
@@ -71,7 +71,8 @@ def makeadmin(args):
 
     db = mg_globals.database
 
-    user = db.User.one({'username': unicode(args.username.lower())})
+    user = db.User.query.filter_by(
+        username=unicode(args.username.lower())).one()
     if user:
         user.is_admin = True
         user.save()
@@ -94,7 +95,8 @@ def changepw(args):
 
     db = mg_globals.database
 
-    user = db.User.one({'username': unicode(args.username.lower())})
+    user = db.User.query.filter_by(
+        username=unicode(args.username.lower())).one()
     if user:
         user.pw_hash = auth.gen_password_hash(args.password)
         user.save()
index 0fe280f1d7185b61cfd28ce84ffec951d93af6ed..3f9d5b2df2ac0adf654934d52cb4e8075586ffa7 100644 (file)
@@ -138,9 +138,9 @@ def add_collection(request, media=None):
         collection.generate_slug()
 
         # Make sure this user isn't duplicating an existing collection
-        existing_collection = request.db.Collection.find_one({
-                'creator': request.user.id,
-                'title':collection.title})
+        existing_collection = request.db.Collection.query.filter_by(
+                creator=request.user.id,
+                title=collection.title).first()
 
         if existing_collection:
             add_message(request, messages.ERROR,
index 5bd8bf2c66590cd268fe65605548180151e42aae..61503d328a12f058ad7827fafda71e8384cf996b 100644 (file)
@@ -93,8 +93,8 @@ def test_register_views(test_app):
     assert 'mediagoblin/user_pages/user.html' in template.TEMPLATE_TEST_CONTEXT
 
     ## Make sure user is in place
-    new_user = mg_globals.database.User.find_one(
-        {'username': u'happygirl'})
+    new_user = mg_globals.database.User.query.filter_by(
+        username=u'happygirl').first()
     assert new_user
     assert new_user.status == u'needs_email_verification'
     assert new_user.email_verified == False
@@ -128,8 +128,8 @@ def test_register_views(test_app):
 
     # assert context['verification_successful'] == True
     # TODO: Would be good to test messages here when we can do so...
-    new_user = mg_globals.database.User.find_one(
-        {'username': u'happygirl'})
+    new_user = mg_globals.database.User.query.filter_by(
+        username=u'happygirl').first()
     assert new_user
     assert new_user.status == u'needs_email_verification'
     assert new_user.email_verified == False
@@ -142,8 +142,8 @@ def test_register_views(test_app):
         'mediagoblin/user_pages/user.html']
     # assert context['verification_successful'] == True
     # TODO: Would be good to test messages here when we can do so...
-    new_user = mg_globals.database.User.find_one(
-        {'username': u'happygirl'})
+    new_user = mg_globals.database.User.query.filter_by(
+        username=u'happygirl').first()
     assert new_user
     assert new_user.status == u'active'
     assert new_user.email_verified == True
index acc638d9f7afbb33e04191a5d0ec2b91722453e4..d70d0478fa5080b06f98c25647511e10ad98afb6 100644 (file)
@@ -190,8 +190,8 @@ class TestUserEdit(object):
         assert urlparse.urlsplit(res.location)[2] == '/'
 
         # Email shouldn't be saved
-        email_in_db = mg_globals.database.User.find_one(
-            {'email': 'new@example.com'})
+        email_in_db = mg_globals.database.User.query.filter_by(
+            email='new@example.com').first()
         email = User.query.filter_by(username='chris').first().email
         assert email_in_db is None
         assert email == 'chris@example.com'
index c85f631847622667edbaedadaf8a39e1c361eee1..bba46db800c5ccb49811ad011644b4655b144313 100644 (file)
@@ -186,8 +186,8 @@ class TestOpenIDPlugin(object):
             openid_plugin_app.get('/auth/logout')
 
             # Get user and detach from session
-            test_user = mg_globals.database.User.find_one({
-                'username': u'chris'})
+            test_user = mg_globals.database.User.query.filter_by(
+                username=u'chris').first()
             Session.expunge(test_user)
 
             # Log back in
@@ -314,8 +314,8 @@ class TestOpenIDPlugin(object):
             assert 'mediagoblin/edit/edit_account.html' in template.TEMPLATE_TEST_CONTEXT
 
             # OpenID Added?
-            new_openid = mg_globals.database.OpenIDUserURL.find_one(
-                {'openid_url': u'http://add.myopenid.com'})
+            new_openid = mg_globals.database.OpenIDUserURL.query.filter_by(
+                openid_url=u'http://add.myopenid.com').first()
             assert new_openid
 
         _test_add()
@@ -365,8 +365,8 @@ class TestOpenIDPlugin(object):
             assert 'mediagoblin/edit/edit_account.html' in template.TEMPLATE_TEST_CONTEXT
 
             # OpenID deleted?
-            new_openid = mg_globals.database.OpenIDUserURL.find_one(
-                {'openid_url': u'http://add.myopenid.com'})
+            new_openid = mg_globals.database.OpenIDUserURL.query.filter_by(
+                openid_url=u'http://add.myopenid.com').first()
             assert not new_openid
 
         _test_delete(self, test_user)
index 162b2d195f09eb762124507b380950ca294b76d1..2ac167cb86b8d837e385d2f852452b22e85d735c 100644 (file)
@@ -77,7 +77,7 @@ class TestSubmission:
         return {'upload_files': [('file', filename)]}
 
     def check_comments(self, request, media_id, count):
-        comments = request.db.MediaComment.find({'media_entry': media_id})
+        comments = request.db.MediaComment.query.filter_by(media_entry=media_id)
         assert count == len(list(comments))
 
     def test_missing_fields(self):
@@ -122,7 +122,7 @@ class TestSubmission:
         assert 'mediagoblin/user_pages/user.html' in context
 
     def check_media(self, request, find_data, count=None):
-        media = MediaEntry.find(find_data)
+        media = MediaEntry.query.filter_by(**find_data)
         if count is not None:
             assert media.count() == count
             if count == 0:
@@ -240,8 +240,8 @@ class TestSubmission:
 
         request = context['request']
 
-        media = request.db.MediaEntry.find_one({
-            u'title': u'UNIQUE_TITLE_PLS_DONT_CREATE_OTHER_MEDIA_WITH_THIS_TITLE'})
+        media = request.db.MediaEntry.query.filter_by(
+            title=u'UNIQUE_TITLE_PLS_DONT_CREATE_OTHER_MEDIA_WITH_THIS_TITLE').first()
 
         assert media.media_type == 'mediagoblin.media_types.image'
 
@@ -252,7 +252,7 @@ class TestSubmission:
         response, context = self.do_post({'title': title}, do_follow=True,
                                          **self.upload_data(filename))
         self.check_url(response, '/u/{0}/'.format(self.test_user.username))
-        entry = mg_globals.database.MediaEntry.find_one({'title': title})
+        entry = mg_globals.database.MediaEntry.query.filter_by(title=title).first()
         assert entry.state == 'failed'
         assert entry.fail_error == u'mediagoblin.processing:BadMediaFail'
 
index 2584c62f89a08e9f0d7ba7b2b8ce12e667909e27..98361adc18eddf940882e1d06356171a561c9547 100644 (file)
@@ -164,7 +164,7 @@ def assert_db_meets_expected(db, expected):
     for collection_name, collection_data in expected.iteritems():
         collection = db[collection_name]
         for expected_document in collection_data:
-            document = collection.find_one({'id': expected_document['id']})
+            document = collection.query.filter_by(id=expected_document['id']).first()
             assert document is not None  # make sure it exists
             assert document == expected_document  # make sure it matches