示例#1
0
    def test_http_connection(self):
        config = self._get_target_http(self.project_cfg)
        adapter = SparkAdapter(config)

        def hive_http_connect(thrift_transport):
            self.assertEqual(thrift_transport.scheme, 'https')
            self.assertEqual(thrift_transport.port, 443)
            self.assertEqual(thrift_transport.host, 'myorg.sparkhost.com')
            self.assertEqual(
                thrift_transport.path,
                '/sql/protocolv1/o/0123456789/01234-23423-coffeetime')

        # with mock.patch.object(hive, 'connect', new=hive_http_connect):
        with mock.patch('dbt.adapters.spark.connections.hive.connect',
                        new=hive_http_connect):
            connection = adapter.acquire_connection('dummy')
            connection.handle  # trigger lazy-load

            self.assertEqual(connection.state, 'open')
            self.assertIsNotNone(connection.handle)
            self.assertEqual(connection.credentials.cluster,
                             '01234-23423-coffeetime')
            self.assertEqual(connection.credentials.token, 'abc123')
            self.assertEqual(connection.credentials.schema, 'analytics')
            self.assertIsNone(connection.credentials.database)
示例#2
0
    def test_odbc_cluster_connection(self):
        config = self._get_target_odbc_cluster(self.project_cfg)
        adapter = SparkAdapter(config)

        def pyodbc_connect(connection_str, autocommit):
            self.assertTrue(autocommit)
            self.assertIn('driver=simba;', connection_str.lower())
            self.assertIn('port=443;', connection_str.lower())
            self.assertIn('host=myorg.sparkhost.com;', connection_str.lower())
            self.assertIn(
                'httppath=/sql/protocolv1/o/0123456789/01234-23423-coffeetime;',
                connection_str.lower())  # noqa

        with mock.patch('dbt.adapters.spark.connections.pyodbc.connect',
                        new=pyodbc_connect):  # noqa
            connection = adapter.acquire_connection('dummy')
            connection.handle  # trigger lazy-load

            self.assertEqual(connection.state, 'open')
            self.assertIsNotNone(connection.handle)
            self.assertEqual(connection.credentials.cluster,
                             '01234-23423-coffeetime')
            self.assertEqual(connection.credentials.token, 'abc123')
            self.assertEqual(connection.credentials.schema, 'analytics')
            self.assertIsNone(connection.credentials.database)
示例#3
0
    def test_thrift_connection(self):
        config = self.get_target_thrift(self.project_cfg)
        adapter = SparkAdapter(config)

        def hive_thrift_connect(host, port, username):
            self.assertEqual(host, 'myorg.sparkhost.com')
            self.assertEqual(port, 10001)
            self.assertEqual(username, 'dbt')

        with mock.patch.object(hive, 'connect', new=hive_thrift_connect):
            connection = adapter.acquire_connection('dummy')

            self.assertEqual(connection.state, 'open')
            self.assertNotEqual(connection.handle, None)
示例#4
0
    def test_http_connection(self):
        config = self.get_target_http(self.project_cfg)
        adapter = SparkAdapter(config)

        def hive_http_connect(thrift_transport):
            self.assertEqual(thrift_transport.scheme, 'https')
            self.assertEqual(thrift_transport.port, 443)
            self.assertEqual(thrift_transport.host, 'myorg.sparkhost.com')
            self.assertEqual(thrift_transport.path,
                             '/sql/protocolv1/o/0/01234-23423-coffeetime')

        with mock.patch.object(hive, 'connect', new=hive_http_connect):
            connection = adapter.acquire_connection('dummy')

            self.assertEqual(connection.state, 'open')
            self.assertNotEqual(connection.handle, None)
示例#5
0
    def test_thrift_connection(self):
        config = self._get_target_thrift(self.project_cfg)
        adapter = SparkAdapter(config)

        def hive_thrift_connect(host, port, username):
            self.assertEqual(host, 'myorg.sparkhost.com')
            self.assertEqual(port, 10001)
            self.assertEqual(username, 'dbt')

        with mock.patch.object(hive, 'connect', new=hive_thrift_connect):
            connection = adapter.acquire_connection('dummy')
            connection.handle  # trigger lazy-load

            self.assertEqual(connection.state, 'open')
            self.assertNotEqual(connection.handle, None)
            self.assertEqual(connection.credentials.schema, 'analytics')
            self.assertEqual(connection.credentials.database, 'analytics')
示例#6
0
    def test_thrift_ssl_connection(self):
        config = self._get_target_use_ssl_thrift(self.project_cfg)
        adapter = SparkAdapter(config)

        def hive_thrift_connect(thrift_transport):
            self.assertIsNotNone(thrift_transport)
            transport = thrift_transport._trans
            self.assertEqual(transport.host, 'myorg.sparkhost.com')
            self.assertEqual(transport.port, 10001)

        with mock.patch.object(hive, 'connect', new=hive_thrift_connect):
            connection = adapter.acquire_connection('dummy')
            connection.handle  # trigger lazy-load

            self.assertEqual(connection.state, 'open')
            self.assertIsNotNone(connection.handle)
            self.assertEqual(connection.credentials.schema, 'analytics')
            self.assertIsNone(connection.credentials.database)