def test_load_tables_check_no_location(client, current_call, refresh_call): parameters = {"table_type": "ICEBERG", "partition_spec": []} client.return_value.__enter__.return_value.get_table.return_value = MockHMSTable( parameters) conf = {"hive.metastore.uris": 'thrift://hms:port'} tables = HiveTables(conf) with raises(RuntimeError): tables.load("test.test_123")
def test_load_tables_check_valid_props(client, current_call, refresh_call): parameters = {"table_type": "ICEBERG", "partition_spec": [], "metadata_location": "s3://path/to/iceberg.metadata.json"} client.return_value.__enter__.return_value.get_table.return_value = MockHMSTable(parameters) conf = {"hive.metastore.uris": 'thrift://hms:port'} tables = HiveTables(conf) tables.load("test.test_123")
def test_load_tables_check_missing_iceberg_type(client, current_call, refresh_call): parameters = {"partition_spec": [], "metadata_location": "s3://path/to/iceberg.metdata.json"} client.return_value.__enter__.return_value.get_table.return_value = MockHMSTable(parameters) conf = {"hive.metastore.uris": 'thrift://hms:port'} tables = HiveTables(conf) with raises(RuntimeError): tables.load("test.test_123")
def test_create_tables(client, current_call, base_scan_schema, base_scan_partition, tmpdir): client.return_value.__enter__.return_value.get_table.side_effect = NoSuchObjectException() current_call.return_value = None client.return_value.__enter__.return_value.lock.return_value = LockResponse("x", LockState.WAITING) client.return_value.__enter__.return_value.check_lock.return_value = LockResponse("x", LockState.ACQUIRED) tbl = client.return_value.__enter__.return_value.create_table.call_args_list conf = {"hive.metastore.uris": 'thrift://hms:port', "hive.metastore.warehouse.dir": tmpdir} tables = HiveTables(conf) tables.create(base_scan_schema, "test.test_123", base_scan_partition) client.return_value.__enter__.return_value.get_table.return_value = MockHMSTable(tbl[0].args[0].parameters) client.return_value.__enter__.return_value.get_table.side_effect = None current_call.return_value = tbl[0].args[0].parameters['metadata_location'] tables.load("test.test_123")