コード例 #1
0
    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,
            )
コード例 #2
0
    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)
コード例 #3
0
 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"],
         )
コード例 #4
0
    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")
コード例 #5
0
    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"])