ran unittest2pytest
This commit is contained in:
		| @@ -10,6 +10,7 @@ from mongoengine.context_managers import ( | ||||
|     switch_db, | ||||
| ) | ||||
| from mongoengine.pymongo_support import count_documents | ||||
| import pytest | ||||
|  | ||||
|  | ||||
| class ContextManagersTest(unittest.TestCase): | ||||
| @@ -23,20 +24,20 @@ class ContextManagersTest(unittest.TestCase): | ||||
|         Group.drop_collection() | ||||
|  | ||||
|         Group(name="hello - default").save() | ||||
|         self.assertEqual(1, Group.objects.count()) | ||||
|         assert 1 == Group.objects.count() | ||||
|  | ||||
|         with switch_db(Group, "testdb-1") as Group: | ||||
|  | ||||
|             self.assertEqual(0, Group.objects.count()) | ||||
|             assert 0 == Group.objects.count() | ||||
|  | ||||
|             Group(name="hello").save() | ||||
|  | ||||
|             self.assertEqual(1, Group.objects.count()) | ||||
|             assert 1 == Group.objects.count() | ||||
|  | ||||
|             Group.drop_collection() | ||||
|             self.assertEqual(0, Group.objects.count()) | ||||
|             assert 0 == Group.objects.count() | ||||
|  | ||||
|         self.assertEqual(1, Group.objects.count()) | ||||
|         assert 1 == Group.objects.count() | ||||
|  | ||||
|     def test_switch_collection_context_manager(self): | ||||
|         connect("mongoenginetest") | ||||
| @@ -51,20 +52,20 @@ class ContextManagersTest(unittest.TestCase): | ||||
|             Group.drop_collection()  # drops in group1 | ||||
|  | ||||
|         Group(name="hello - group").save() | ||||
|         self.assertEqual(1, Group.objects.count()) | ||||
|         assert 1 == Group.objects.count() | ||||
|  | ||||
|         with switch_collection(Group, "group1") as Group: | ||||
|  | ||||
|             self.assertEqual(0, Group.objects.count()) | ||||
|             assert 0 == Group.objects.count() | ||||
|  | ||||
|             Group(name="hello - group1").save() | ||||
|  | ||||
|             self.assertEqual(1, Group.objects.count()) | ||||
|             assert 1 == Group.objects.count() | ||||
|  | ||||
|             Group.drop_collection() | ||||
|             self.assertEqual(0, Group.objects.count()) | ||||
|             assert 0 == Group.objects.count() | ||||
|  | ||||
|         self.assertEqual(1, Group.objects.count()) | ||||
|         assert 1 == Group.objects.count() | ||||
|  | ||||
|     def test_no_dereference_context_manager_object_id(self): | ||||
|         """Ensure that DBRef items in ListFields aren't dereferenced. | ||||
| @@ -89,20 +90,20 @@ class ContextManagersTest(unittest.TestCase): | ||||
|         Group(ref=user, members=User.objects, generic=user).save() | ||||
|  | ||||
|         with no_dereference(Group) as NoDeRefGroup: | ||||
|             self.assertTrue(Group._fields["members"]._auto_dereference) | ||||
|             self.assertFalse(NoDeRefGroup._fields["members"]._auto_dereference) | ||||
|             assert Group._fields["members"]._auto_dereference | ||||
|             assert not NoDeRefGroup._fields["members"]._auto_dereference | ||||
|  | ||||
|         with no_dereference(Group) as Group: | ||||
|             group = Group.objects.first() | ||||
|             for m in group.members: | ||||
|                 self.assertNotIsInstance(m, User) | ||||
|             self.assertNotIsInstance(group.ref, User) | ||||
|             self.assertNotIsInstance(group.generic, User) | ||||
|                 assert not isinstance(m, User) | ||||
|             assert not isinstance(group.ref, User) | ||||
|             assert not isinstance(group.generic, User) | ||||
|  | ||||
|         for m in group.members: | ||||
|             self.assertIsInstance(m, User) | ||||
|         self.assertIsInstance(group.ref, User) | ||||
|         self.assertIsInstance(group.generic, User) | ||||
|             assert isinstance(m, User) | ||||
|         assert isinstance(group.ref, User) | ||||
|         assert isinstance(group.generic, User) | ||||
|  | ||||
|     def test_no_dereference_context_manager_dbref(self): | ||||
|         """Ensure that DBRef items in ListFields aren't dereferenced. | ||||
| @@ -127,18 +128,18 @@ class ContextManagersTest(unittest.TestCase): | ||||
|         Group(ref=user, members=User.objects, generic=user).save() | ||||
|  | ||||
|         with no_dereference(Group) as NoDeRefGroup: | ||||
|             self.assertTrue(Group._fields["members"]._auto_dereference) | ||||
|             self.assertFalse(NoDeRefGroup._fields["members"]._auto_dereference) | ||||
|             assert Group._fields["members"]._auto_dereference | ||||
|             assert not NoDeRefGroup._fields["members"]._auto_dereference | ||||
|  | ||||
|         with no_dereference(Group) as Group: | ||||
|             group = Group.objects.first() | ||||
|             self.assertTrue(all([not isinstance(m, User) for m in group.members])) | ||||
|             self.assertNotIsInstance(group.ref, User) | ||||
|             self.assertNotIsInstance(group.generic, User) | ||||
|             assert all([not isinstance(m, User) for m in group.members]) | ||||
|             assert not isinstance(group.ref, User) | ||||
|             assert not isinstance(group.generic, User) | ||||
|  | ||||
|         self.assertTrue(all([isinstance(m, User) for m in group.members])) | ||||
|         self.assertIsInstance(group.ref, User) | ||||
|         self.assertIsInstance(group.generic, User) | ||||
|         assert all([isinstance(m, User) for m in group.members]) | ||||
|         assert isinstance(group.ref, User) | ||||
|         assert isinstance(group.generic, User) | ||||
|  | ||||
|     def test_no_sub_classes(self): | ||||
|         class A(Document): | ||||
| @@ -159,32 +160,32 @@ class ContextManagersTest(unittest.TestCase): | ||||
|         B(x=30).save() | ||||
|         C(x=40).save() | ||||
|  | ||||
|         self.assertEqual(A.objects.count(), 5) | ||||
|         self.assertEqual(B.objects.count(), 3) | ||||
|         self.assertEqual(C.objects.count(), 1) | ||||
|         assert A.objects.count() == 5 | ||||
|         assert B.objects.count() == 3 | ||||
|         assert C.objects.count() == 1 | ||||
|  | ||||
|         with no_sub_classes(A): | ||||
|             self.assertEqual(A.objects.count(), 2) | ||||
|             assert A.objects.count() == 2 | ||||
|  | ||||
|             for obj in A.objects: | ||||
|                 self.assertEqual(obj.__class__, A) | ||||
|                 assert obj.__class__ == A | ||||
|  | ||||
|         with no_sub_classes(B): | ||||
|             self.assertEqual(B.objects.count(), 2) | ||||
|             assert B.objects.count() == 2 | ||||
|  | ||||
|             for obj in B.objects: | ||||
|                 self.assertEqual(obj.__class__, B) | ||||
|                 assert obj.__class__ == B | ||||
|  | ||||
|         with no_sub_classes(C): | ||||
|             self.assertEqual(C.objects.count(), 1) | ||||
|             assert C.objects.count() == 1 | ||||
|  | ||||
|             for obj in C.objects: | ||||
|                 self.assertEqual(obj.__class__, C) | ||||
|                 assert obj.__class__ == C | ||||
|  | ||||
|         # Confirm context manager exit correctly | ||||
|         self.assertEqual(A.objects.count(), 5) | ||||
|         self.assertEqual(B.objects.count(), 3) | ||||
|         self.assertEqual(C.objects.count(), 1) | ||||
|         assert A.objects.count() == 5 | ||||
|         assert B.objects.count() == 3 | ||||
|         assert C.objects.count() == 1 | ||||
|  | ||||
|     def test_no_sub_classes_modification_to_document_class_are_temporary(self): | ||||
|         class A(Document): | ||||
| @@ -194,27 +195,27 @@ class ContextManagersTest(unittest.TestCase): | ||||
|         class B(A): | ||||
|             z = IntField() | ||||
|  | ||||
|         self.assertEqual(A._subclasses, ("A", "A.B")) | ||||
|         assert A._subclasses == ("A", "A.B") | ||||
|         with no_sub_classes(A): | ||||
|             self.assertEqual(A._subclasses, ("A",)) | ||||
|         self.assertEqual(A._subclasses, ("A", "A.B")) | ||||
|             assert A._subclasses == ("A",) | ||||
|         assert A._subclasses == ("A", "A.B") | ||||
|  | ||||
|         self.assertEqual(B._subclasses, ("A.B",)) | ||||
|         assert B._subclasses == ("A.B",) | ||||
|         with no_sub_classes(B): | ||||
|             self.assertEqual(B._subclasses, ("A.B",)) | ||||
|         self.assertEqual(B._subclasses, ("A.B",)) | ||||
|             assert B._subclasses == ("A.B",) | ||||
|         assert B._subclasses == ("A.B",) | ||||
|  | ||||
|     def test_no_subclass_context_manager_does_not_swallow_exception(self): | ||||
|         class User(Document): | ||||
|             name = StringField() | ||||
|  | ||||
|         with self.assertRaises(TypeError): | ||||
|         with pytest.raises(TypeError): | ||||
|             with no_sub_classes(User): | ||||
|                 raise TypeError() | ||||
|  | ||||
|     def test_query_counter_does_not_swallow_exception(self): | ||||
|  | ||||
|         with self.assertRaises(TypeError): | ||||
|         with pytest.raises(TypeError): | ||||
|             with query_counter() as q: | ||||
|                 raise TypeError() | ||||
|  | ||||
| @@ -227,10 +228,10 @@ class ContextManagersTest(unittest.TestCase): | ||||
|         try: | ||||
|             NEW_LEVEL = 1 | ||||
|             db.set_profiling_level(NEW_LEVEL) | ||||
|             self.assertEqual(db.profiling_level(), NEW_LEVEL) | ||||
|             assert db.profiling_level() == NEW_LEVEL | ||||
|             with query_counter() as q: | ||||
|                 self.assertEqual(db.profiling_level(), 2) | ||||
|             self.assertEqual(db.profiling_level(), NEW_LEVEL) | ||||
|                 assert db.profiling_level() == 2 | ||||
|             assert db.profiling_level() == NEW_LEVEL | ||||
|         except Exception: | ||||
|             db.set_profiling_level( | ||||
|                 initial_profiling_level | ||||
| @@ -255,33 +256,31 @@ class ContextManagersTest(unittest.TestCase): | ||||
|  | ||||
|         counter = 0 | ||||
|         with query_counter() as q: | ||||
|             self.assertEqual(q, counter) | ||||
|             self.assertEqual( | ||||
|                 q, counter | ||||
|             )  # Ensures previous count query did not get counted | ||||
|             assert q == counter | ||||
|             assert q == counter  # Ensures previous count query did not get counted | ||||
|  | ||||
|             for _ in range(10): | ||||
|                 issue_1_insert_query() | ||||
|                 counter += 1 | ||||
|             self.assertEqual(q, counter) | ||||
|             assert q == counter | ||||
|  | ||||
|             for _ in range(4): | ||||
|                 issue_1_find_query() | ||||
|                 counter += 1 | ||||
|             self.assertEqual(q, counter) | ||||
|             assert q == counter | ||||
|  | ||||
|             for _ in range(3): | ||||
|                 issue_1_count_query() | ||||
|                 counter += 1 | ||||
|             self.assertEqual(q, counter) | ||||
|             assert q == counter | ||||
|  | ||||
|             self.assertEqual(int(q), counter)  # test __int__ | ||||
|             self.assertEqual(repr(q), str(int(q)))  # test __repr__ | ||||
|             self.assertGreater(q, -1)  # test __gt__ | ||||
|             self.assertGreaterEqual(q, int(q))  # test __gte__ | ||||
|             self.assertNotEqual(q, -1) | ||||
|             self.assertLess(q, 1000) | ||||
|             self.assertLessEqual(q, int(q)) | ||||
|             assert int(q) == counter  # test __int__ | ||||
|             assert repr(q) == str(int(q))  # test __repr__ | ||||
|             assert q > -1  # test __gt__ | ||||
|             assert q >= int(q)  # test __gte__ | ||||
|             assert q != -1 | ||||
|             assert q < 1000 | ||||
|             assert q <= int(q) | ||||
|  | ||||
|     def test_query_counter_counts_getmore_queries(self): | ||||
|         connect("mongoenginetest") | ||||
| @@ -296,9 +295,9 @@ class ContextManagersTest(unittest.TestCase): | ||||
|         )  # first batch of documents contains 101 documents | ||||
|  | ||||
|         with query_counter() as q: | ||||
|             self.assertEqual(q, 0) | ||||
|             assert q == 0 | ||||
|             list(collection.find()) | ||||
|             self.assertEqual(q, 2)  # 1st select + 1 getmore | ||||
|             assert q == 2  # 1st select + 1 getmore | ||||
|  | ||||
|     def test_query_counter_ignores_particular_queries(self): | ||||
|         connect("mongoenginetest") | ||||
| @@ -308,18 +307,18 @@ class ContextManagersTest(unittest.TestCase): | ||||
|         collection.insert_many([{"test": "garbage %s" % i} for i in range(10)]) | ||||
|  | ||||
|         with query_counter() as q: | ||||
|             self.assertEqual(q, 0) | ||||
|             assert q == 0 | ||||
|             cursor = collection.find() | ||||
|             self.assertEqual(q, 0)  # cursor wasn't opened yet | ||||
|             assert q == 0  # cursor wasn't opened yet | ||||
|             _ = next(cursor)  # opens the cursor and fires the find query | ||||
|             self.assertEqual(q, 1) | ||||
|             assert q == 1 | ||||
|  | ||||
|             cursor.close()  # issues a `killcursors` query that is ignored by the context | ||||
|             self.assertEqual(q, 1) | ||||
|             assert q == 1 | ||||
|             _ = ( | ||||
|                 db.system.indexes.find_one() | ||||
|             )  # queries on db.system.indexes are ignored as well | ||||
|             self.assertEqual(q, 1) | ||||
|             assert q == 1 | ||||
|  | ||||
|  | ||||
| if __name__ == "__main__": | ||||
|   | ||||
		Reference in New Issue
	
	Block a user