more test cov
This commit is contained in:
@@ -593,8 +593,9 @@ class IndexesTest(unittest.TestCase):
|
||||
# Two posts with the same slug is not allowed
|
||||
post2 = BlogPost(title='test2', slug='test')
|
||||
self.assertRaises(NotUniqueError, post2.save)
|
||||
self.assertRaises(NotUniqueError, BlogPost.objects.insert, post2)
|
||||
|
||||
# Ensure backwards compatibilty for errors
|
||||
# Ensure backwards compatibility for errors
|
||||
self.assertRaises(OperationError, post2.save)
|
||||
|
||||
@requires_mongodb_gte_34
|
||||
@@ -826,6 +827,19 @@ class IndexesTest(unittest.TestCase):
|
||||
self.assertEqual(3600,
|
||||
info['created_1']['expireAfterSeconds'])
|
||||
|
||||
def test_index_drop_dups_silently_ignored(self):
|
||||
class Customer(Document):
|
||||
cust_id = IntField(unique=True, required=True)
|
||||
meta = {
|
||||
'indexes': ['cust_id'],
|
||||
'index_drop_dups': True,
|
||||
'allow_inheritance': False,
|
||||
}
|
||||
|
||||
Customer.drop_collection()
|
||||
Customer.objects.first()
|
||||
|
||||
|
||||
def test_unique_and_indexes(self):
|
||||
"""Ensure that 'unique' constraints aren't overridden by
|
||||
meta.indexes.
|
||||
@@ -842,11 +856,16 @@ class IndexesTest(unittest.TestCase):
|
||||
cust.save()
|
||||
|
||||
cust_dupe = Customer(cust_id=1)
|
||||
try:
|
||||
with self.assertRaises(NotUniqueError):
|
||||
cust_dupe.save()
|
||||
raise AssertionError("We saved a dupe!")
|
||||
except NotUniqueError:
|
||||
pass
|
||||
|
||||
cust = Customer(cust_id=2)
|
||||
cust.save()
|
||||
|
||||
# duplicate key on update
|
||||
with self.assertRaises(NotUniqueError):
|
||||
cust.cust_id = 1
|
||||
cust.save()
|
||||
|
||||
def test_primary_save_duplicate_update_existing_object(self):
|
||||
"""If you set a field as primary, then unexpected behaviour can occur.
|
||||
|
||||
@@ -420,6 +420,12 @@ class InstanceTest(MongoDBTestCase):
|
||||
person.save()
|
||||
person.to_dbref()
|
||||
|
||||
def test_key_like_attribute_access(self):
|
||||
person = self.Person(age=30)
|
||||
self.assertEqual(person['age'], 30)
|
||||
with self.assertRaises(KeyError):
|
||||
person['unknown_attr']
|
||||
|
||||
def test_save_abstract_document(self):
|
||||
"""Saving an abstract document should fail."""
|
||||
class Doc(Document):
|
||||
|
||||
@@ -40,6 +40,11 @@ class GeoFieldTest(unittest.TestCase):
|
||||
expected = "Both values (%s) in point must be float or int" % repr(coord)
|
||||
self._test_for_expected_error(Location, coord, expected)
|
||||
|
||||
invalid_coords = [21, 4, 'a']
|
||||
for coord in invalid_coords:
|
||||
expected = "GeoPointField can only accept tuples or lists of (x, y)"
|
||||
self._test_for_expected_error(Location, coord, expected)
|
||||
|
||||
def test_point_validation(self):
|
||||
class Location(Document):
|
||||
loc = PointField()
|
||||
|
||||
0
tests/test_common.py
Normal file
0
tests/test_common.py
Normal file
Reference in New Issue
Block a user