def test_multi_index(self): mi1 = MultiIndexModel.create(f1='a', f2='a', f3='a') mi2 = MultiIndexModel.create(f1='b', f2='b', f3='b') self.assertRaises(Exception, MultiIndexModel.create, f1='a', f2='a', f3='b') test_db.rollback() self.assertRaises(Exception, MultiIndexModel.create, f1='b', f2='b', f3='a') test_db.rollback() mi3 = MultiIndexModel.create(f1='a', f2='b', f3='b')
def test_multi_index(self): mi1 = MultiIndexModel.create(f1="a", f2="a", f3="a") mi2 = MultiIndexModel.create(f1="b", f2="b", f3="b") self.assertRaises(Exception, MultiIndexModel.create, f1="a", f2="a", f3="b") test_db.rollback() self.assertRaises(Exception, MultiIndexModel.create, f1="b", f2="b", f3="a") test_db.rollback() mi3 = MultiIndexModel.create(f1="a", f2="b", f3="b")
def test_primary_foreign_key(self): # we have one job, unexecuted, and therefore no executed jobs job = Job.create(name='Job One') executed_jobs = Job.select().join(JobExecutionRecord) self.assertEqual([], list(executed_jobs)) # after execution, we must have one executed job exec_record = JobExecutionRecord.create(job=job, status='success') executed_jobs = Job.select().join(JobExecutionRecord) self.assertEqual([job], list(executed_jobs)) # we must not be able to create another execution record for the job self.assertRaises(Exception, JobExecutionRecord.create, job=job, status='success') test_db.rollback()
def test_manual(self): test_db.set_autocommit(False) # Will not be rolled back. self.assertRaises(IntegrityError, Blog.create) if issubclass(database_class, PostgresqlDatabase): self.assertRaises(InternalError, User.create, username='******') test_db.rollback() u = User.create(username='******') test_db.commit() u_db = User.get(User.username == 'u') self.assertEqual(u.id, u_db.id)
def test_auto_rollback(self): # Exceptions are still raised. self.assertRaises(IntegrityError, Blog.create) # The transaction should have been automatically rolled-back, allowing # us to create new objects (in a new transaction). u = User.create(username='******') self.assertTrue(u.id) # No-op, the previous INSERT was already committed. test_db.rollback() # Ensure we can get our user back. u_db = User.get(User.username == 'u') self.assertEqual(u.id, u_db.id)
def test_unique(self): uniq1 = UniqueModel.create(name='a') uniq2 = UniqueModel.create(name='b') self.assertRaises(Exception, UniqueModel.create, name='a') test_db.rollback()