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