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)
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)
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)
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)
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')
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)