def test_connect(self):
        """Tests the connect function"""

        self.assertRaises(
            OperationalError,
            dbc.MySQLConnection(
                'mysql+pymysql://{user}:{password}@{host}/{database}', 'host',
                '3333', 'db', 'user', 'password').connect, [None])
        self.assertEqual(
            None,
            dbc.MySQLConnection(
                MOCK_URI.format(
                    file=path.join(MOCK_DIR, '../resources/dbmanagr.sqlite')),
                'host', '3333', 'db', 'user', 'password').connect(None))
        self.assertEqual(
            None,
            dbc.MySQLConnection(
                MOCK_URI.format(
                    file=path.join(MOCK_DIR, '../resources/dbmanagr.sqlite')),
                'host', '3333', 'db', 'user', 'password').connect(None))
        self.assertEqual(
            None,
            dbc.MySQLConnection(
                MOCK_URI.format(
                    file=path.join(MOCK_DIR, '../resources/dbmanagr.sqlite')),
                'host', '3333', 'db', 'user', 'password').connect('db'))
        self.assertEqual(
            None,
            dbc.MySQLConnection(
                MOCK_URI.format(file=path.join(
                    MOCK_DIR, '../resources/{database}/dbmanagr.sqlite')),
                'host', '3333', 'db', 'user', 'password').connect('db'))
    def test_autocomplete(self):
        """Tests the autocomplete function"""

        self.assertEqual(
            'user@host/db/',
            dbc.MySQLConnection('uri', 'host', '3333', 'db', 'user',
                                'password').autocomplete())
        self.assertEqual(
            'user@host/',
            dbc.MySQLConnection('uri', 'host', '3333', None, 'user',
                                'password').autocomplete())
    def test_filter(self):
        """Tests the filter function"""

        self.assertEqual(
            True,
            dbc.MySQLConnection('uri', 'host', '3333', 'db', 'user',
                                'password').filter_(
                                    Config.init(['user@host/db/'],
                                                navigator.args.parser)))
        self.assertEqual(
            False,
            dbc.MySQLConnection(
                'mysql+pymysql://{user}:{password}@{host}/{database}', 'host',
                '3333', 'db', 'user',
                'password').filter_({'mysql': Opts(user='******', host=None)}))
    def test_subtitle(self):
        """Tests the subtitle function"""

        self.assertEqual(
            'MySQL Connection',
            dbc.MySQLConnection('uri', 'host', '3333', 'db', 'user',
                                'password').subtitle())
    def test_title(self):
        """Tests the title function"""

        self.assertEqual(
            'user@host/db/',
            dbc.MySQLConnection('uri', 'host', '3333', 'db', 'user',
                                'password').title())
    def test_repr(self):
        """Tests the repr method"""

        con = dbc.MySQLConnection(
            'mysql+pymysql://{user}:{password}@{host}/{database}', 'host',
            '3333', 'db', 'user', 'password')

        self.assertEqual(repr(con), con.__repr__())
    def test_matches(self):
        """Tests the matches method"""

        self.assertEqual(
            False,
            dbc.MySQLConnection(
                'mysql+pymysql://{user}:{password}@{host}/{database}', 'host',
                '3333', 'db', 'user', 'password').matches(Opts(gen='foo@bar')))