def testCreateConnectionGood(self):
        # make a valid connection
        md = QgsProviderRegistry.instance().providerMetadata('ogr')
        conn = md.createConnection(self.gpkg_path, {})
        md.saveConnection(conn, 'qgis_test1')

        conn = QgsApplication.connectionRegistry().createConnection(
            'ogr://adasdas')
        self.assertFalse(conn.uri())

        conn = QgsApplication.connectionRegistry().createConnection(
            'ogr://qgis_test1')
        self.assertEqual(conn.uri(), self.gpkg_path)

        # case insensitive provider name
        conn = QgsApplication.connectionRegistry().createConnection(
            'OGR://qgis_test1')
        self.assertEqual(conn.uri(), self.gpkg_path)

        # connection name with spaces
        md.saveConnection(conn, 'qgis Test 2')
        conn = QgsApplication.connectionRegistry().createConnection(
            'OGR://qgis Test 2')
        self.assertEqual(conn.uri(), self.gpkg_path)
    def testCreateConnectionBad(self):
        """
        Test creating connection with bad parameters
        """
        with self.assertRaises(QgsProviderConnectionException):
            QgsApplication.connectionRegistry().createConnection('invalid')

        with self.assertRaises(QgsProviderConnectionException):
            QgsApplication.connectionRegistry().createConnection('invalid://')

        with self.assertRaises(QgsProviderConnectionException):
            QgsApplication.connectionRegistry().createConnection(
                'invalid://aa')