def test_1l_1f_ref_lookup_fetches_linked_object(self): user = LinkedUser(name='Teo Yeo') profile = LinkedProfile(name='Great City') user.profile = profile user.save() profile = LinkedProfile.id(profile.id).include('user').exec() self.assertEqual(profile.user.id, user.id) self.assertEqual(profile.user.name, user.name)
def test_fetched_objects_are_unmodified_1f_1l(self): user = LinkedUser(name='Bo Hang') profile = LinkedProfile(name='Ko Leng') user.profile = profile user.save() profile = LinkedProfile.id(profile.id).include('user').exec() self.assertEqual(profile.is_new, False) self.assertEqual(profile.is_modified, False) self.assertEqual(profile.modified_fields, ()) self.assertEqual(profile.user.is_new, False) self.assertEqual(profile.user.is_modified, False) self.assertEqual(profile.user.modified_fields, ())
def test_1l_1f_find_lookup_fetches_linked_object(self): user1 = LinkedUser(name='Phou Neng') profile1 = LinkedProfile(name='Great City, Too') user1.profile = profile1 user1.save() user2 = LinkedUser(name='Teo Yeo') profile2 = LinkedProfile(name='Great City') user2.profile = profile2 user2.save() results = LinkedProfile.find().include('user').exec() self.assertEqual(results[0].id, profile1.id) self.assertEqual(results[0].user.id, user1.id) self.assertEqual(results[1].id, profile2.id) self.assertEqual(results[1].user.id, user2.id)
def test_1f_1l_ref_lookup_fetches_linked_object_use_id_include(self): user = LinkedUser(name='Teo Yeo') profile = LinkedProfile(name='Great City') user.profile = profile user.save() user = LinkedUser.id(user.id, **{'_includes': ['profile']}).exec() self.assertEqual(user.profile.id, profile.id) self.assertEqual(user.profile.name, profile.name)
def test_1l_1f_instance_can_be_nullified(self): user = LinkedUser(name='crazy') profile = LinkedProfile(name='six') user.profile = profile user.save() collection = Connection.get_collection(LinkedUser) self.assertEqual(collection.count_documents({}), 1) collection = Connection.get_collection(LinkedProfile) self.assertEqual(collection.count_documents({}), 1) user.delete() for obj in collection.find(): self.assertNotIn('userId', obj)
def test_1f_1l_object_unlink_is_saved(self): user = LinkedUser(name='u') profile = LinkedProfile(name='p') user.profile = profile user.save() user.profile = None user.save() self.assertEqual(profile.is_new, False) self.assertEqual(profile.is_modified, False) self.assertEqual(profile.modified_fields, ()) self.assertEqual(user.is_new, False) self.assertEqual(user.is_modified, False) self.assertEqual(user.modified_fields, ()) collection = Connection.get_collection(LinkedProfile) for item in collection.find({}): self.assertNotIn('userId', item)