Skip to content

Commit

Permalink
fix: flask-mongoengine 0.8 regression
Browse files Browse the repository at this point in the history
  • Loading branch information
lyschoening committed Sep 28, 2016
1 parent e2769f7 commit b6e1d0d
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 59 deletions.
23 changes: 23 additions & 0 deletions tests/contrib/mongoengine/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from flask_mongoengine import MongoEngine
from pymongo.database import Database

from flask_potion import Api
from flask_potion.contrib.mongoengine import MongoEngineManager
from tests import BaseTestCase


class MongoEngineTestCase(BaseTestCase):
def setUp(self):
super(MongoEngineTestCase, self).setUp()
self.app.config['MONGODB_DB'] = 'potion-test-db'
self.api = Api(self.app, default_manager=MongoEngineManager)
self.me = me = MongoEngine(self.app)

def tearDown(self):
connection_or_db = self.me.connection

# MongoEngine.connection value changed in flask-mongoengine 0.8
if isinstance(connection_or_db, Database):
connection_or_db.client.drop_database(connection_or_db)
else:
connection_or_db.drop_database('potion-test-db')
21 changes: 4 additions & 17 deletions tests/contrib/mongoengine/test_fields.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,15 @@
from bson import ObjectId
from bson.errors import InvalidId
from flask_mongoengine import MongoEngine
from mongoengine import ObjectIdField, MapField, FloatField, StringField, EmbeddedDocumentField, \
EmbeddedDocument

from flask_potion import Api, ModelResource
from flask_potion.contrib.mongoengine import MongoEngineManager
from tests import BaseTestCase
from tests.contrib.mongoengine import MongoEngineTestCase


class FieldsTestCase(BaseTestCase):
def setUp(self):
super(FieldsTestCase, self).setUp()
app = self.app
app.config['MONGODB_DB'] = 'potion-test-db'
app.config['TESTING'] = True

self.api = Api(self.app, default_manager=MongoEngineManager)
self.me = MongoEngine(app)

class FieldsTestCase(MongoEngineTestCase):
def test_object_id_field(self):

class Model(self.me.Document):
meta = {
'collection': 'model'
Expand Down Expand Up @@ -95,7 +85,4 @@ class Meta:
'a': 'adfb48a6763c5741b92f6ade'
}, 'string_mapping': {}
},
without=["$uri"])

def tearDown(self):
self.me.connection.drop_database('potion-test-db')
without=["$uri"])
15 changes: 3 additions & 12 deletions tests/contrib/mongoengine/test_filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,14 @@

from flask_potion.contrib.mongoengine import MongoEngineManager
from flask_potion import ModelResource, fields, Api
from tests import BaseTestCase
from tests.contrib.mongoengine import MongoEngineTestCase


class FilterTestCase(BaseTestCase):
class FilterTestCase(MongoEngineTestCase):
def setUp(self):
super(FilterTestCase, self).setUp()
app = self.app
app.config['MONGODB_DB'] = 'potion-test-db'
app.config['TESTING'] = True

self.api = Api(self.app, default_manager=MongoEngineManager)
self.me = me = MongoEngine(app)

class User(me.Document):
class User(self.me.Document):
meta = {
"collection": "user"
}
Expand Down Expand Up @@ -210,8 +204,5 @@ def test_disallowed_where_filters(self):
def test_schema(self):
pass

def tearDown(self):
self.me.connection.drop_database('potion-test-db')

if __name__ == '__main__':
unittest.main()
28 changes: 8 additions & 20 deletions tests/contrib/mongoengine/test_manager_mongoengine.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,14 @@
from flask_potion import Api, fields
from flask_potion.resource import ModelResource
from tests import BaseTestCase
from tests.contrib.mongoengine import MongoEngineTestCase


class MongoEngineTestCase(BaseTestCase):
class MongoEngineManagerTestCase(MongoEngineTestCase):
def setUp(self):
super(MongoEngineTestCase, self).setUp()
self.app.config['MONGODB_DB'] = 'potion-test-db'
self.api = Api(self.app, default_manager=MongoEngineManager)
self.me = me = MongoEngine(self.app)
super(MongoEngineManagerTestCase, self).setUp()

class Type(me.Document):
class Type(self.me.Document):
meta = {"collection": "type"}
name = StringField(max_length=60, null=False, unique=True)

Expand All @@ -30,7 +28,7 @@ def machines(self, machines):
for m in machines:
m.type = self

class Machine(me.Document):
class Machine(self.me.Document):
meta = {"collection": "machine"}
name = StringField(max_length=60, null=False)

Expand Down Expand Up @@ -62,9 +60,6 @@ class Schema:
self.api.add_resource(MachineResource)
self.api.add_resource(TypeResource)

def tearDown(self):
self.me.connection.drop_database('potion-test-db')

def test_field_discovery(self):
self.assertEqual(set(self.MachineResource.schema.fields.keys()), {'$id', '$type', 'name', 'type', 'wattage'})
self.assertEqual(set(self.TypeResource.schema.fields.keys()), {'$id', '$type', 'name', 'machines'})
Expand Down Expand Up @@ -253,23 +248,19 @@ def test_delete(self):
self.assert404(response)


class MongoEngineRelationTestCase(BaseTestCase):

class MongoEngineRelationTestCase(MongoEngineTestCase):
def setUp(self):
super(MongoEngineRelationTestCase, self).setUp()
self.app.config['MONGODB_DB'] = 'potion-test-db'
self.api = Api(self.app, default_manager=MongoEngineManager)
self.me = me = MongoEngine(self.app)

class User(me.Document):
class User(self.me.Document):
name = StringField(max_length=60)
children = ListField(ReferenceField('User'))

@property
def memberships(self):
return Group.objects(members__in=self)

class Group(me.Document):
class Group(self.me.Document):
name = StringField(max_length=60)
members = ListField(ReferenceField('User'))

Expand Down Expand Up @@ -384,6 +375,3 @@ def test_relationship_pagination(self):
'</user/{}/children?page=1&per_page=20>; rel="first",'
'</user/{}/children?page=2&per_page=20>; rel="prev",'
'</user/{}/children?page=3&per_page=20>; rel="last"'.format(user_id, user_id, user_id, user_id), response.headers['Link'])

def tearDown(self):
self.me.connection.drop_database('potion-test-db')
15 changes: 5 additions & 10 deletions tests/contrib/mongoengine/test_signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,14 @@
from flask_potion.resource import ModelResource
from flask_potion import Api
from tests import BaseTestCase
from tests.contrib.mongoengine import MongoEngineTestCase


class MongoEngineSignalTestCase(BaseTestCase):
class MongoEngineSignalTestCase(MongoEngineTestCase):
def setUp(self):
super(MongoEngineSignalTestCase, self).setUp()
self.app.config['MONGODB_DB'] = 'potion-test-db'
self.api = Api(self.app, default_manager=MongoEngineManager)
self.me = me = MongoEngine(self.app)

class User(me.Document):
class User(self.me.Document):
name = StringField(max_length=60, null=False)
gender = StringField(max_length=1, null=True)

Expand All @@ -32,10 +30,10 @@ def __eq__(self, other):
def __repr__(self):
return 'User({})'.format(self.name)

class Group(me.Document):
class Group(self.me.Document):
name = StringField(max_length=60, null=False)

class GroupMembership(me.Document):
class GroupMembership(self.me.Document):
user = ReferenceField(User)
group = ReferenceField(Group)

Expand All @@ -58,9 +56,6 @@ class Meta:
self.api.add_resource(UserResource)
self.api.add_resource(GroupResource)

def tearDown(self):
self.me.connection.drop_database('potion-test-db')

@contextmanager
def assertSignals(self, expected_events, sender=ANY):
events = []
Expand Down

0 comments on commit b6e1d0d

Please sign in to comment.