def test_set_default(self): Manager.alter().set_default(Manager.name, "Pending").run_sync() # Bypassing the ORM to make sure the database default is present. Band.raw("INSERT INTO manager (id, name) VALUES (DEFAULT, DEFAULT);" ).run_sync() manager = Manager.objects().first().run_sync() self.assertEqual(manager.name, "Pending")
def test_succeeds(self): transaction = Band._meta.db.atomic() transaction.add(Manager.create_table(), Band.create_table()) transaction.run_sync() self.assertTrue(Band.table_exists().run_sync()) self.assertTrue(Manager.table_exists().run_sync()) transaction.add(Band.alter().drop_table(), Manager.alter().drop_table()) transaction.run_sync()
def test_unique(self): unique_query = Manager.alter().set_unique(Manager.name, True) unique_query.run_sync() Manager(name="Bob").save().run_sync() # Make sure non-unique names work: Manager(name="Sally").save().run_sync() # Check there's a unique row error ... with self.assertRaises(Exception): Manager(name="Bob").save().run_sync() response = Manager.select().run_sync() self.assertEqual(len(response), 2) # Now remove the constraint, and add a row. not_unique_query = Manager.alter().set_unique(Manager.name, False) not_unique_query.run_sync() Manager(name="Bob").save().run_sync() response = Manager.select().run_sync() self.assertTrue(len(response), 2)
def test_multiple(self): self.insert_row() query = (Manager.alter().add_column("column_a", Integer(default=0, null=True)).add_column( "column_b", Integer(default=0, null=True))) query.run_sync() response = Band.raw("SELECT * FROM manager").run_sync() column_names = response[0].keys() self.assertIn("column_a", column_names) self.assertIn("column_b", column_names)
def tearDown(self): Manager.alter().drop_table().run_sync()
def test_create_table(self): Manager.create_table().run_sync() self.assertTrue(Manager.table_exists().run_sync()) Manager.alter().drop_table().run_sync()
def tearDown(self) -> None: Band.alter().drop_table(if_exists=True).run_sync() Manager.alter().drop_table(if_exists=True).run_sync()