def test_creating_fk_with_missing_parameters(self): with self.assertRaises(AssertionError): ForeignKey( from_table=None, from_keys="colA", to_table="tableB", to_keys="colB", ) with self.assertRaises(AssertionError): ForeignKey( from_table="tableA", from_keys=None, to_table="tableB", to_keys="colB", ) with self.assertRaises(AssertionError): ForeignKey( from_table="tableA", from_keys="colA", to_table=None, to_keys="colB", ) with self.assertRaises(AssertionError): ForeignKey( from_table="tableA", from_keys="colA", to_table="tableB", to_keys=None, )
def test_add_foreign_key(self): """Tests adding foreign keys.""" table = Table(table_name="table1", primary_key="pk1") table.add_foreign_key( ForeignKey( name="fk1", from_table="table1", from_keys="col1", to_table="table2", to_keys="col2", ) ) table.add_foreign_key( name="fk2", from_keys="col3", to_table="table3", to_keys="col4" ) fk = table.foreign_keys["fk1"] self.assertEquals("table1", fk.from_table) fk = table.get_foreign_key("fk2") self.assertEqual("table1", fk.from_table) self.assertEqual(["col3"], fk.from_keys) self.assertEqual("table3", fk.to_table) self.assertEqual(["col4"], fk.to_keys) fk = table.get_foreign_key("fkx") self.assertIsNone(fk)
def test_creating_fk_with_mismatched_key_columns(self): """Tests creating a foreign key that uses more than one column.""" with self.assertRaises(AssertionError): ForeignKey( from_table="tableA", from_keys="colA", to_table="tableB", to_keys=["colA", "colB"], )
def test_creating_FK_with_no_name_and_single_key(self): """Tests creating a foreign key with a single key column and no defaults.""" fk = ForeignKey(from_table="tableA", from_keys="colA", to_table="tableB", to_keys="colB") self.assertEquals(fk.from_table, "tableA") self.assertEquals(fk.from_keys, ["colA"]) self.assertEquals(fk.to_table, "tableB") self.assertEquals(fk.to_keys, ["colB"]) self.assertEquals(fk.name, "FK_tableA_to_tableB")
def test_creating_fk_with_compound_keys(self): """Tests creating a foreign key that uses more than one column.""" fk = ForeignKey( from_table="tableA", from_keys=["colA", "colB"], to_table="tableB", to_keys=["colA", "colB"], ) self.assertEqual(fk.from_keys, ["colA", "colB"]) self.assertEqual(fk.to_keys, ["colA", "colB"])