def test_sync_dropped_fk(self):
        """Test: dest table has foreign keys not in src table"""
        saved = self.src.foreign_keys['fk_rental_customer']
        pos = self.dest.foreign_keys.index('fk_rental_customer')
        del self.src.foreign_keys['fk_rental_customer']

        for i, (p,r) in enumerate(syncdb.sync_dropped_constraints(self.src.foreign_keys, self.dest.foreign_keys)):
            self.assertEqual(p, "DROP FOREIGN KEY `fk_rental_customer`")
            self.assertEqual(r, "ADD CONSTRAINT `fk_rental_customer` FOREIGN KEY `fk_rental_customer` (`customer_id`) REFERENCES `customer` (`customer_id`) ON DELETE RESTRICT ON UPDATE CASCADE")

        self.assertEqual(i, 0)
    def test_sync_dropped_index(self):
        """Test: dest table has indexes not in src table"""
        saved = self.src.indexes['idx_fk_customer_id']
        pos = self.dest.indexes.index('idx_fk_customer_id')
        del self.src.indexes['idx_fk_customer_id']

        for i, (p,r) in enumerate(syncdb.sync_dropped_constraints(self.src.indexes, self.dest.indexes)):
            self.assertEqual(p, "DROP INDEX `idx_fk_customer_id`")
            self.assertEqual(r, "ADD INDEX `idx_fk_customer_id` (`customer_id`) USING BTREE")

        self.assertEqual(i, 0)
    def test_sync_dropped_index(self):
        """Test: dest table has indexes not in src table"""
        saved = self.src.indexes['idx_fk_customer_id']
        pos = self.dest.indexes.index('idx_fk_customer_id')
        del self.src.indexes['idx_fk_customer_id']

        for i, (p, r) in enumerate(
                syncdb.sync_dropped_constraints(self.src.indexes,
                                                self.dest.indexes)):
            self.assertEqual(p, "DROP INDEX `idx_fk_customer_id`")
            self.assertEqual(
                r,
                "ADD INDEX `idx_fk_customer_id` (`customer_id`) USING BTREE")

        self.assertEqual(i, 0)
    def test_sync_dropped_fk(self):
        """Test: dest table has foreign keys not in src table"""
        saved = self.src.foreign_keys['fk_rental_customer']
        pos = self.dest.foreign_keys.index('fk_rental_customer')
        del self.src.foreign_keys['fk_rental_customer']

        for i, (p, r) in enumerate(
                syncdb.sync_dropped_constraints(self.src.foreign_keys,
                                                self.dest.foreign_keys)):
            self.assertEqual(p, "DROP FOREIGN KEY `fk_rental_customer`")
            self.assertEqual(
                r,
                "ADD CONSTRAINT `fk_rental_customer` FOREIGN KEY `fk_rental_customer` (`customer_id`) REFERENCES `customer` (`customer_id`) ON DELETE RESTRICT ON UPDATE CASCADE"
            )

        self.assertEqual(i, 0)