ran unittest2pytest

This commit is contained in:
Bastien Gérard
2019-08-30 16:13:30 +03:00
parent aa6ff8c84a
commit ac25f4b98b
46 changed files with 4247 additions and 4428 deletions

View File

@@ -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__":