Format the codebase using Black (#2109)
This commit: 1. Formats all of our existing code using `black`. 2. Adds a note about using `black` to `CONTRIBUTING.rst`. 3. Runs `black --check` as part of CI (failing builds that aren't properly formatted).
This commit is contained in:
@@ -10,18 +10,18 @@ from mongoengine.context_managers import query_counter
|
||||
|
||||
|
||||
class FieldTest(unittest.TestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.db = connect(db='mongoenginetest')
|
||||
cls.db = connect(db="mongoenginetest")
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
cls.db.drop_database('mongoenginetest')
|
||||
cls.db.drop_database("mongoenginetest")
|
||||
|
||||
def test_list_item_dereference(self):
|
||||
"""Ensure that DBRef items in ListFields are dereferenced.
|
||||
"""
|
||||
|
||||
class User(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -32,7 +32,7 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
for i in range(1, 51):
|
||||
user = User(name='user %s' % i)
|
||||
user = User(name="user %s" % i)
|
||||
user.save()
|
||||
|
||||
group = Group(members=User.objects)
|
||||
@@ -47,7 +47,7 @@ class FieldTest(unittest.TestCase):
|
||||
group_obj = Group.objects.first()
|
||||
self.assertEqual(q, 1)
|
||||
|
||||
len(group_obj._data['members'])
|
||||
len(group_obj._data["members"])
|
||||
self.assertEqual(q, 1)
|
||||
|
||||
len(group_obj.members)
|
||||
@@ -80,6 +80,7 @@ class FieldTest(unittest.TestCase):
|
||||
def test_list_item_dereference_dref_false(self):
|
||||
"""Ensure that DBRef items in ListFields are dereferenced.
|
||||
"""
|
||||
|
||||
class User(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -90,7 +91,7 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
for i in range(1, 51):
|
||||
user = User(name='user %s' % i)
|
||||
user = User(name="user %s" % i)
|
||||
user.save()
|
||||
|
||||
group = Group(members=User.objects)
|
||||
@@ -105,14 +106,14 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
[m for m in group_obj.members]
|
||||
self.assertEqual(q, 2)
|
||||
self.assertTrue(group_obj._data['members']._dereferenced)
|
||||
self.assertTrue(group_obj._data["members"]._dereferenced)
|
||||
|
||||
# verifies that no additional queries gets executed
|
||||
# if we re-iterate over the ListField once it is
|
||||
# dereferenced
|
||||
[m for m in group_obj.members]
|
||||
self.assertEqual(q, 2)
|
||||
self.assertTrue(group_obj._data['members']._dereferenced)
|
||||
self.assertTrue(group_obj._data["members"]._dereferenced)
|
||||
|
||||
# Document select_related
|
||||
with query_counter() as q:
|
||||
@@ -136,6 +137,7 @@ class FieldTest(unittest.TestCase):
|
||||
def test_list_item_dereference_orphan_dbref(self):
|
||||
"""Ensure that orphan DBRef items in ListFields are dereferenced.
|
||||
"""
|
||||
|
||||
class User(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -146,7 +148,7 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
for i in range(1, 51):
|
||||
user = User(name='user %s' % i)
|
||||
user = User(name="user %s" % i)
|
||||
user.save()
|
||||
|
||||
group = Group(members=User.objects)
|
||||
@@ -164,14 +166,14 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
[m for m in group_obj.members]
|
||||
self.assertEqual(q, 2)
|
||||
self.assertTrue(group_obj._data['members']._dereferenced)
|
||||
self.assertTrue(group_obj._data["members"]._dereferenced)
|
||||
|
||||
# verifies that no additional queries gets executed
|
||||
# if we re-iterate over the ListField once it is
|
||||
# dereferenced
|
||||
[m for m in group_obj.members]
|
||||
self.assertEqual(q, 2)
|
||||
self.assertTrue(group_obj._data['members']._dereferenced)
|
||||
self.assertTrue(group_obj._data["members"]._dereferenced)
|
||||
|
||||
User.drop_collection()
|
||||
Group.drop_collection()
|
||||
@@ -179,6 +181,7 @@ class FieldTest(unittest.TestCase):
|
||||
def test_list_item_dereference_dref_false_stores_as_type(self):
|
||||
"""Ensure that DBRef items are stored as their type
|
||||
"""
|
||||
|
||||
class User(Document):
|
||||
my_id = IntField(primary_key=True)
|
||||
name = StringField()
|
||||
@@ -189,17 +192,18 @@ class FieldTest(unittest.TestCase):
|
||||
User.drop_collection()
|
||||
Group.drop_collection()
|
||||
|
||||
user = User(my_id=1, name='user 1').save()
|
||||
user = User(my_id=1, name="user 1").save()
|
||||
|
||||
Group(members=User.objects).save()
|
||||
group = Group.objects.first()
|
||||
|
||||
self.assertEqual(Group._get_collection().find_one()['members'], [1])
|
||||
self.assertEqual(Group._get_collection().find_one()["members"], [1])
|
||||
self.assertEqual(group.members, [user])
|
||||
|
||||
def test_handle_old_style_references(self):
|
||||
"""Ensure that DBRef items in ListFields are dereferenced.
|
||||
"""
|
||||
|
||||
class User(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -210,7 +214,7 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
for i in range(1, 26):
|
||||
user = User(name='user %s' % i)
|
||||
user = User(name="user %s" % i)
|
||||
user.save()
|
||||
|
||||
group = Group(members=User.objects)
|
||||
@@ -227,8 +231,8 @@ class FieldTest(unittest.TestCase):
|
||||
group.save()
|
||||
|
||||
group = Group.objects.first()
|
||||
self.assertEqual(group.members[0].name, 'user 1')
|
||||
self.assertEqual(group.members[-1].name, 'String!')
|
||||
self.assertEqual(group.members[0].name, "user 1")
|
||||
self.assertEqual(group.members[-1].name, "String!")
|
||||
|
||||
def test_migrate_references(self):
|
||||
"""Example of migrating ReferenceField storage
|
||||
@@ -249,8 +253,8 @@ class FieldTest(unittest.TestCase):
|
||||
group = Group(author=user, members=[user]).save()
|
||||
|
||||
raw_data = Group._get_collection().find_one()
|
||||
self.assertIsInstance(raw_data['author'], DBRef)
|
||||
self.assertIsInstance(raw_data['members'][0], DBRef)
|
||||
self.assertIsInstance(raw_data["author"], DBRef)
|
||||
self.assertIsInstance(raw_data["members"][0], DBRef)
|
||||
group = Group.objects.first()
|
||||
|
||||
self.assertEqual(group.author, user)
|
||||
@@ -264,8 +268,8 @@ class FieldTest(unittest.TestCase):
|
||||
# Migrate the data
|
||||
for g in Group.objects():
|
||||
# Explicitly mark as changed so resets
|
||||
g._mark_as_changed('author')
|
||||
g._mark_as_changed('members')
|
||||
g._mark_as_changed("author")
|
||||
g._mark_as_changed("members")
|
||||
g.save()
|
||||
|
||||
group = Group.objects.first()
|
||||
@@ -273,35 +277,36 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(group.members, [user])
|
||||
|
||||
raw_data = Group._get_collection().find_one()
|
||||
self.assertIsInstance(raw_data['author'], ObjectId)
|
||||
self.assertIsInstance(raw_data['members'][0], ObjectId)
|
||||
self.assertIsInstance(raw_data["author"], ObjectId)
|
||||
self.assertIsInstance(raw_data["members"][0], ObjectId)
|
||||
|
||||
def test_recursive_reference(self):
|
||||
"""Ensure that ReferenceFields can reference their own documents.
|
||||
"""
|
||||
|
||||
class Employee(Document):
|
||||
name = StringField()
|
||||
boss = ReferenceField('self')
|
||||
friends = ListField(ReferenceField('self'))
|
||||
boss = ReferenceField("self")
|
||||
friends = ListField(ReferenceField("self"))
|
||||
|
||||
Employee.drop_collection()
|
||||
|
||||
bill = Employee(name='Bill Lumbergh')
|
||||
bill = Employee(name="Bill Lumbergh")
|
||||
bill.save()
|
||||
|
||||
michael = Employee(name='Michael Bolton')
|
||||
michael = Employee(name="Michael Bolton")
|
||||
michael.save()
|
||||
|
||||
samir = Employee(name='Samir Nagheenanajar')
|
||||
samir = Employee(name="Samir Nagheenanajar")
|
||||
samir.save()
|
||||
|
||||
friends = [michael, samir]
|
||||
peter = Employee(name='Peter Gibbons', boss=bill, friends=friends)
|
||||
peter = Employee(name="Peter Gibbons", boss=bill, friends=friends)
|
||||
peter.save()
|
||||
|
||||
Employee(name='Funky Gibbon', boss=bill, friends=friends).save()
|
||||
Employee(name='Funky Gibbon', boss=bill, friends=friends).save()
|
||||
Employee(name='Funky Gibbon', boss=bill, friends=friends).save()
|
||||
Employee(name="Funky Gibbon", boss=bill, friends=friends).save()
|
||||
Employee(name="Funky Gibbon", boss=bill, friends=friends).save()
|
||||
Employee(name="Funky Gibbon", boss=bill, friends=friends).save()
|
||||
|
||||
with query_counter() as q:
|
||||
self.assertEqual(q, 0)
|
||||
@@ -343,7 +348,6 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 2)
|
||||
|
||||
def test_list_of_lists_of_references(self):
|
||||
|
||||
class User(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -357,9 +361,9 @@ class FieldTest(unittest.TestCase):
|
||||
Post.drop_collection()
|
||||
SimpleList.drop_collection()
|
||||
|
||||
u1 = User.objects.create(name='u1')
|
||||
u2 = User.objects.create(name='u2')
|
||||
u3 = User.objects.create(name='u3')
|
||||
u1 = User.objects.create(name="u1")
|
||||
u2 = User.objects.create(name="u2")
|
||||
u3 = User.objects.create(name="u3")
|
||||
|
||||
SimpleList.objects.create(users=[u1, u2, u3])
|
||||
self.assertEqual(SimpleList.objects.all()[0].users, [u1, u2, u3])
|
||||
@@ -370,13 +374,14 @@ class FieldTest(unittest.TestCase):
|
||||
def test_circular_reference(self):
|
||||
"""Ensure you can handle circular references
|
||||
"""
|
||||
|
||||
class Relation(EmbeddedDocument):
|
||||
name = StringField()
|
||||
person = ReferenceField('Person')
|
||||
person = ReferenceField("Person")
|
||||
|
||||
class Person(Document):
|
||||
name = StringField()
|
||||
relations = ListField(EmbeddedDocumentField('Relation'))
|
||||
relations = ListField(EmbeddedDocumentField("Relation"))
|
||||
|
||||
def __repr__(self):
|
||||
return "<Person: %s>" % self.name
|
||||
@@ -398,14 +403,17 @@ class FieldTest(unittest.TestCase):
|
||||
daughter.relations.append(self_rel)
|
||||
daughter.save()
|
||||
|
||||
self.assertEqual("[<Person: Mother>, <Person: Daughter>]", "%s" % Person.objects())
|
||||
self.assertEqual(
|
||||
"[<Person: Mother>, <Person: Daughter>]", "%s" % Person.objects()
|
||||
)
|
||||
|
||||
def test_circular_reference_on_self(self):
|
||||
"""Ensure you can handle circular references
|
||||
"""
|
||||
|
||||
class Person(Document):
|
||||
name = StringField()
|
||||
relations = ListField(ReferenceField('self'))
|
||||
relations = ListField(ReferenceField("self"))
|
||||
|
||||
def __repr__(self):
|
||||
return "<Person: %s>" % self.name
|
||||
@@ -424,14 +432,17 @@ class FieldTest(unittest.TestCase):
|
||||
daughter.relations.append(daughter)
|
||||
daughter.save()
|
||||
|
||||
self.assertEqual("[<Person: Mother>, <Person: Daughter>]", "%s" % Person.objects())
|
||||
self.assertEqual(
|
||||
"[<Person: Mother>, <Person: Daughter>]", "%s" % Person.objects()
|
||||
)
|
||||
|
||||
def test_circular_tree_reference(self):
|
||||
"""Ensure you can handle circular references with more than one level
|
||||
"""
|
||||
|
||||
class Other(EmbeddedDocument):
|
||||
name = StringField()
|
||||
friends = ListField(ReferenceField('Person'))
|
||||
friends = ListField(ReferenceField("Person"))
|
||||
|
||||
class Person(Document):
|
||||
name = StringField()
|
||||
@@ -443,8 +454,8 @@ class FieldTest(unittest.TestCase):
|
||||
Person.drop_collection()
|
||||
paul = Person(name="Paul").save()
|
||||
maria = Person(name="Maria").save()
|
||||
julia = Person(name='Julia').save()
|
||||
anna = Person(name='Anna').save()
|
||||
julia = Person(name="Julia").save()
|
||||
anna = Person(name="Anna").save()
|
||||
|
||||
paul.other.friends = [maria, julia, anna]
|
||||
paul.other.name = "Paul's friends"
|
||||
@@ -464,11 +475,10 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
self.assertEqual(
|
||||
"[<Person: Paul>, <Person: Maria>, <Person: Julia>, <Person: Anna>]",
|
||||
"%s" % Person.objects()
|
||||
"%s" % Person.objects(),
|
||||
)
|
||||
|
||||
def test_generic_reference(self):
|
||||
|
||||
class UserA(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -488,13 +498,13 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
members = []
|
||||
for i in range(1, 51):
|
||||
a = UserA(name='User A %s' % i)
|
||||
a = UserA(name="User A %s" % i)
|
||||
a.save()
|
||||
|
||||
b = UserB(name='User B %s' % i)
|
||||
b = UserB(name="User B %s" % i)
|
||||
b.save()
|
||||
|
||||
c = UserC(name='User C %s' % i)
|
||||
c = UserC(name="User C %s" % i)
|
||||
c.save()
|
||||
|
||||
members += [a, b, c]
|
||||
@@ -518,7 +528,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for m in group_obj.members:
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
# Document select_related
|
||||
with query_counter() as q:
|
||||
@@ -534,7 +544,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for m in group_obj.members:
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
# Queryset select_related
|
||||
with query_counter() as q:
|
||||
@@ -551,8 +561,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for m in group_obj.members:
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
def test_generic_reference_orphan_dbref(self):
|
||||
"""Ensure that generic orphan DBRef items in ListFields are dereferenced.
|
||||
@@ -577,13 +586,13 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
members = []
|
||||
for i in range(1, 51):
|
||||
a = UserA(name='User A %s' % i)
|
||||
a = UserA(name="User A %s" % i)
|
||||
a.save()
|
||||
|
||||
b = UserB(name='User B %s' % i)
|
||||
b = UserB(name="User B %s" % i)
|
||||
b.save()
|
||||
|
||||
c = UserC(name='User C %s' % i)
|
||||
c = UserC(name="User C %s" % i)
|
||||
c.save()
|
||||
|
||||
members += [a, b, c]
|
||||
@@ -602,11 +611,11 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
[m for m in group_obj.members]
|
||||
self.assertEqual(q, 4)
|
||||
self.assertTrue(group_obj._data['members']._dereferenced)
|
||||
self.assertTrue(group_obj._data["members"]._dereferenced)
|
||||
|
||||
[m for m in group_obj.members]
|
||||
self.assertEqual(q, 4)
|
||||
self.assertTrue(group_obj._data['members']._dereferenced)
|
||||
self.assertTrue(group_obj._data["members"]._dereferenced)
|
||||
|
||||
UserA.drop_collection()
|
||||
UserB.drop_collection()
|
||||
@@ -614,7 +623,6 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
def test_list_field_complex(self):
|
||||
|
||||
class UserA(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -634,13 +642,13 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
members = []
|
||||
for i in range(1, 51):
|
||||
a = UserA(name='User A %s' % i)
|
||||
a = UserA(name="User A %s" % i)
|
||||
a.save()
|
||||
|
||||
b = UserB(name='User B %s' % i)
|
||||
b = UserB(name="User B %s" % i)
|
||||
b.save()
|
||||
|
||||
c = UserC(name='User C %s' % i)
|
||||
c = UserC(name="User C %s" % i)
|
||||
c.save()
|
||||
|
||||
members += [a, b, c]
|
||||
@@ -664,7 +672,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for m in group_obj.members:
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
# Document select_related
|
||||
with query_counter() as q:
|
||||
@@ -680,7 +688,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for m in group_obj.members:
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
# Queryset select_related
|
||||
with query_counter() as q:
|
||||
@@ -697,7 +705,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for m in group_obj.members:
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
UserA.drop_collection()
|
||||
UserB.drop_collection()
|
||||
@@ -705,7 +713,6 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
def test_map_field_reference(self):
|
||||
|
||||
class User(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -717,7 +724,7 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
members = []
|
||||
for i in range(1, 51):
|
||||
user = User(name='user %s' % i)
|
||||
user = User(name="user %s" % i)
|
||||
user.save()
|
||||
members.append(user)
|
||||
|
||||
@@ -752,7 +759,7 @@ class FieldTest(unittest.TestCase):
|
||||
for k, m in iteritems(group_obj.members):
|
||||
self.assertIsInstance(m, User)
|
||||
|
||||
# Queryset select_related
|
||||
# Queryset select_related
|
||||
with query_counter() as q:
|
||||
self.assertEqual(q, 0)
|
||||
|
||||
@@ -770,7 +777,6 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
def test_dict_field(self):
|
||||
|
||||
class UserA(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -790,13 +796,13 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
members = []
|
||||
for i in range(1, 51):
|
||||
a = UserA(name='User A %s' % i)
|
||||
a = UserA(name="User A %s" % i)
|
||||
a.save()
|
||||
|
||||
b = UserB(name='User B %s' % i)
|
||||
b = UserB(name="User B %s" % i)
|
||||
b.save()
|
||||
|
||||
c = UserC(name='User C %s' % i)
|
||||
c = UserC(name="User C %s" % i)
|
||||
c.save()
|
||||
|
||||
members += [a, b, c]
|
||||
@@ -819,7 +825,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for k, m in iteritems(group_obj.members):
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
# Document select_related
|
||||
with query_counter() as q:
|
||||
@@ -835,7 +841,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for k, m in iteritems(group_obj.members):
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
# Queryset select_related
|
||||
with query_counter() as q:
|
||||
@@ -852,7 +858,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for k, m in iteritems(group_obj.members):
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
Group.objects.delete()
|
||||
Group().save()
|
||||
@@ -873,10 +879,9 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
def test_dict_field_no_field_inheritance(self):
|
||||
|
||||
class UserA(Document):
|
||||
name = StringField()
|
||||
meta = {'allow_inheritance': False}
|
||||
meta = {"allow_inheritance": False}
|
||||
|
||||
class Group(Document):
|
||||
members = DictField()
|
||||
@@ -886,7 +891,7 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
members = []
|
||||
for i in range(1, 51):
|
||||
a = UserA(name='User A %s' % i)
|
||||
a = UserA(name="User A %s" % i)
|
||||
a.save()
|
||||
|
||||
members += [a]
|
||||
@@ -949,7 +954,6 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
def test_generic_reference_map_field(self):
|
||||
|
||||
class UserA(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -969,13 +973,13 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
members = []
|
||||
for i in range(1, 51):
|
||||
a = UserA(name='User A %s' % i)
|
||||
a = UserA(name="User A %s" % i)
|
||||
a.save()
|
||||
|
||||
b = UserB(name='User B %s' % i)
|
||||
b = UserB(name="User B %s" % i)
|
||||
b.save()
|
||||
|
||||
c = UserC(name='User C %s' % i)
|
||||
c = UserC(name="User C %s" % i)
|
||||
c.save()
|
||||
|
||||
members += [a, b, c]
|
||||
@@ -998,7 +1002,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for k, m in iteritems(group_obj.members):
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
# Document select_related
|
||||
with query_counter() as q:
|
||||
@@ -1014,7 +1018,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for k, m in iteritems(group_obj.members):
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
# Queryset select_related
|
||||
with query_counter() as q:
|
||||
@@ -1031,7 +1035,7 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 4)
|
||||
|
||||
for k, m in iteritems(group_obj.members):
|
||||
self.assertIn('User', m.__class__.__name__)
|
||||
self.assertIn("User", m.__class__.__name__)
|
||||
|
||||
Group.objects.delete()
|
||||
Group().save()
|
||||
@@ -1051,7 +1055,6 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
def test_multidirectional_lists(self):
|
||||
|
||||
class Asset(Document):
|
||||
name = StringField(max_length=250, required=True)
|
||||
path = StringField()
|
||||
@@ -1062,10 +1065,10 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
Asset.drop_collection()
|
||||
|
||||
root = Asset(name='', path="/", title="Site Root")
|
||||
root = Asset(name="", path="/", title="Site Root")
|
||||
root.save()
|
||||
|
||||
company = Asset(name='company', title='Company', parent=root, parents=[root])
|
||||
company = Asset(name="company", title="Company", parent=root, parents=[root])
|
||||
company.save()
|
||||
|
||||
root.children = [company]
|
||||
@@ -1076,7 +1079,6 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(company.parents, [root])
|
||||
|
||||
def test_dict_in_dbref_instance(self):
|
||||
|
||||
class Person(Document):
|
||||
name = StringField(max_length=250, required=True)
|
||||
|
||||
@@ -1087,34 +1089,35 @@ class FieldTest(unittest.TestCase):
|
||||
Person.drop_collection()
|
||||
Room.drop_collection()
|
||||
|
||||
bob = Person.objects.create(name='Bob')
|
||||
bob = Person.objects.create(name="Bob")
|
||||
bob.save()
|
||||
sarah = Person.objects.create(name='Sarah')
|
||||
sarah = Person.objects.create(name="Sarah")
|
||||
sarah.save()
|
||||
|
||||
room_101 = Room.objects.create(number="101")
|
||||
room_101.staffs_with_position = [
|
||||
{'position_key': 'window', 'staff': sarah},
|
||||
{'position_key': 'door', 'staff': bob.to_dbref()}]
|
||||
{"position_key": "window", "staff": sarah},
|
||||
{"position_key": "door", "staff": bob.to_dbref()},
|
||||
]
|
||||
room_101.save()
|
||||
|
||||
room = Room.objects.first().select_related()
|
||||
self.assertEqual(room.staffs_with_position[0]['staff'], sarah)
|
||||
self.assertEqual(room.staffs_with_position[1]['staff'], bob)
|
||||
self.assertEqual(room.staffs_with_position[0]["staff"], sarah)
|
||||
self.assertEqual(room.staffs_with_position[1]["staff"], bob)
|
||||
|
||||
def test_document_reload_no_inheritance(self):
|
||||
class Foo(Document):
|
||||
meta = {'allow_inheritance': False}
|
||||
bar = ReferenceField('Bar')
|
||||
baz = ReferenceField('Baz')
|
||||
meta = {"allow_inheritance": False}
|
||||
bar = ReferenceField("Bar")
|
||||
baz = ReferenceField("Baz")
|
||||
|
||||
class Bar(Document):
|
||||
meta = {'allow_inheritance': False}
|
||||
msg = StringField(required=True, default='Blammo!')
|
||||
meta = {"allow_inheritance": False}
|
||||
msg = StringField(required=True, default="Blammo!")
|
||||
|
||||
class Baz(Document):
|
||||
meta = {'allow_inheritance': False}
|
||||
msg = StringField(required=True, default='Kaboom!')
|
||||
meta = {"allow_inheritance": False}
|
||||
msg = StringField(required=True, default="Kaboom!")
|
||||
|
||||
Foo.drop_collection()
|
||||
Bar.drop_collection()
|
||||
@@ -1138,11 +1141,14 @@ class FieldTest(unittest.TestCase):
|
||||
Ensure reloading a document with multiple similar id
|
||||
in different collections doesn't mix them.
|
||||
"""
|
||||
|
||||
class Topic(Document):
|
||||
id = IntField(primary_key=True)
|
||||
|
||||
class User(Document):
|
||||
id = IntField(primary_key=True)
|
||||
name = StringField()
|
||||
|
||||
class Message(Document):
|
||||
id = IntField(primary_key=True)
|
||||
topic = ReferenceField(Topic)
|
||||
@@ -1154,23 +1160,24 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
# All objects share the same id, but each in a different collection
|
||||
topic = Topic(id=1).save()
|
||||
user = User(id=1, name='user-name').save()
|
||||
user = User(id=1, name="user-name").save()
|
||||
Message(id=1, topic=topic, author=user).save()
|
||||
|
||||
concurrent_change_user = User.objects.get(id=1)
|
||||
concurrent_change_user.name = 'new-name'
|
||||
concurrent_change_user.name = "new-name"
|
||||
concurrent_change_user.save()
|
||||
self.assertNotEqual(user.name, 'new-name')
|
||||
self.assertNotEqual(user.name, "new-name")
|
||||
|
||||
msg = Message.objects.get(id=1)
|
||||
msg.reload()
|
||||
self.assertEqual(msg.topic, topic)
|
||||
self.assertEqual(msg.author, user)
|
||||
self.assertEqual(msg.author.name, 'new-name')
|
||||
self.assertEqual(msg.author.name, "new-name")
|
||||
|
||||
def test_list_lookup_not_checked_in_map(self):
|
||||
"""Ensure we dereference list data correctly
|
||||
"""
|
||||
|
||||
class Comment(Document):
|
||||
id = IntField(primary_key=True)
|
||||
text = StringField()
|
||||
@@ -1182,8 +1189,8 @@ class FieldTest(unittest.TestCase):
|
||||
Comment.drop_collection()
|
||||
Message.drop_collection()
|
||||
|
||||
c1 = Comment(id=0, text='zero').save()
|
||||
c2 = Comment(id=1, text='one').save()
|
||||
c1 = Comment(id=0, text="zero").save()
|
||||
c2 = Comment(id=1, text="one").save()
|
||||
Message(id=1, comments=[c1, c2]).save()
|
||||
|
||||
msg = Message.objects.get(id=1)
|
||||
@@ -1193,6 +1200,7 @@ class FieldTest(unittest.TestCase):
|
||||
def test_list_item_dereference_dref_false_save_doesnt_cause_extra_queries(self):
|
||||
"""Ensure that DBRef items in ListFields are dereferenced.
|
||||
"""
|
||||
|
||||
class User(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -1204,7 +1212,7 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
for i in range(1, 51):
|
||||
User(name='user %s' % i).save()
|
||||
User(name="user %s" % i).save()
|
||||
|
||||
Group(name="Test", members=User.objects).save()
|
||||
|
||||
@@ -1222,6 +1230,7 @@ class FieldTest(unittest.TestCase):
|
||||
def test_list_item_dereference_dref_true_save_doesnt_cause_extra_queries(self):
|
||||
"""Ensure that DBRef items in ListFields are dereferenced.
|
||||
"""
|
||||
|
||||
class User(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -1233,7 +1242,7 @@ class FieldTest(unittest.TestCase):
|
||||
Group.drop_collection()
|
||||
|
||||
for i in range(1, 51):
|
||||
User(name='user %s' % i).save()
|
||||
User(name="user %s" % i).save()
|
||||
|
||||
Group(name="Test", members=User.objects).save()
|
||||
|
||||
@@ -1249,7 +1258,6 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 2)
|
||||
|
||||
def test_generic_reference_save_doesnt_cause_extra_queries(self):
|
||||
|
||||
class UserA(Document):
|
||||
name = StringField()
|
||||
|
||||
@@ -1270,9 +1278,9 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
members = []
|
||||
for i in range(1, 51):
|
||||
a = UserA(name='User A %s' % i).save()
|
||||
b = UserB(name='User B %s' % i).save()
|
||||
c = UserC(name='User C %s' % i).save()
|
||||
a = UserA(name="User A %s" % i).save()
|
||||
b = UserB(name="User B %s" % i).save()
|
||||
c = UserC(name="User C %s" % i).save()
|
||||
|
||||
members += [a, b, c]
|
||||
|
||||
@@ -1292,7 +1300,7 @@ class FieldTest(unittest.TestCase):
|
||||
def test_objectid_reference_across_databases(self):
|
||||
# mongoenginetest - Is default connection alias from setUp()
|
||||
# Register Aliases
|
||||
register_connection('testdb-1', 'mongoenginetest2')
|
||||
register_connection("testdb-1", "mongoenginetest2")
|
||||
|
||||
class User(Document):
|
||||
name = StringField()
|
||||
@@ -1311,16 +1319,17 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
# Can't use query_counter across databases - so test the _data object
|
||||
book = Book.objects.first()
|
||||
self.assertNotIsInstance(book._data['author'], User)
|
||||
self.assertNotIsInstance(book._data["author"], User)
|
||||
|
||||
book.select_related()
|
||||
self.assertIsInstance(book._data['author'], User)
|
||||
self.assertIsInstance(book._data["author"], User)
|
||||
|
||||
def test_non_ascii_pk(self):
|
||||
"""
|
||||
Ensure that dbref conversion to string does not fail when
|
||||
non-ascii characters are used in primary key
|
||||
"""
|
||||
|
||||
class Brand(Document):
|
||||
title = StringField(max_length=255, primary_key=True)
|
||||
|
||||
@@ -1341,7 +1350,7 @@ class FieldTest(unittest.TestCase):
|
||||
|
||||
def test_dereferencing_embedded_listfield_referencefield(self):
|
||||
class Tag(Document):
|
||||
meta = {'collection': 'tags'}
|
||||
meta = {"collection": "tags"}
|
||||
name = StringField()
|
||||
|
||||
class Post(EmbeddedDocument):
|
||||
@@ -1349,22 +1358,21 @@ class FieldTest(unittest.TestCase):
|
||||
tags = ListField(ReferenceField("Tag", dbref=True))
|
||||
|
||||
class Page(Document):
|
||||
meta = {'collection': 'pages'}
|
||||
meta = {"collection": "pages"}
|
||||
tags = ListField(ReferenceField("Tag", dbref=True))
|
||||
posts = ListField(EmbeddedDocumentField(Post))
|
||||
|
||||
Tag.drop_collection()
|
||||
Page.drop_collection()
|
||||
|
||||
tag = Tag(name='test').save()
|
||||
post = Post(body='test body', tags=[tag])
|
||||
tag = Tag(name="test").save()
|
||||
post = Post(body="test body", tags=[tag])
|
||||
Page(tags=[tag], posts=[post]).save()
|
||||
|
||||
page = Page.objects.first()
|
||||
self.assertEqual(page.tags[0], page.posts[0].tags[0])
|
||||
|
||||
def test_select_related_follows_embedded_referencefields(self):
|
||||
|
||||
class Song(Document):
|
||||
title = StringField()
|
||||
|
||||
@@ -1390,5 +1398,5 @@ class FieldTest(unittest.TestCase):
|
||||
self.assertEqual(q, 2)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user