Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
99277ee
added retry logic
mwojtyczka Oct 16, 2025
ef479aa
fmt
mwojtyczka Oct 16, 2025
4c09127
fmt
mwojtyczka Oct 16, 2025
22481a2
refactor
mwojtyczka Oct 16, 2025
e6e8063
upgraded hatch version
mwojtyczka Oct 16, 2025
aeb067d
fmt
mwojtyczka Oct 16, 2025
adbe051
increase timeout
mwojtyczka Oct 16, 2025
cd5638c
refactor: implement retry logic for lakebase instance deletions
tlgnr Oct 17, 2025
e0ab254
updated pytester version
mwojtyczka Oct 17, 2025
b8773f6
refactor
mwojtyczka Oct 17, 2025
46d74c8
chore: merge in remote changes
tlgnr Oct 17, 2025
eefee1a
create one instance of lakebase per module
mwojtyczka Oct 17, 2025
3e65190
refactor to avoid scope mismatch
mwojtyczka Oct 17, 2025
6d16a50
refactor
mwojtyczka Oct 17, 2025
6ac7e85
fmt
mwojtyczka Oct 17, 2025
fa3ea9f
fmt
mwojtyczka Oct 17, 2025
57b83b0
fmt
mwojtyczka Oct 17, 2025
1134bee
fmt
mwojtyczka Oct 17, 2025
3477773
fmt
mwojtyczka Oct 17, 2025
d2e6b38
fmt
mwojtyczka Oct 17, 2025
e1fe558
fmt
mwojtyczka Oct 17, 2025
af795a7
fmt
mwojtyczka Oct 17, 2025
fa67275
fmt
mwojtyczka Oct 17, 2025
b99e883
refactor
mwojtyczka Oct 17, 2025
f08805f
refactor
mwojtyczka Oct 17, 2025
12456fc
refactor
mwojtyczka Oct 17, 2025
ce0dd76
refactor
mwojtyczka Oct 17, 2025
a9b416f
refactor
mwojtyczka Oct 17, 2025
0b0d8fb
refactor
mwojtyczka Oct 17, 2025
ff44977
refactor
mwojtyczka Oct 17, 2025
398feb2
refactor
mwojtyczka Oct 17, 2025
8ebffe5
refactor
mwojtyczka Oct 18, 2025
199b663
updated docs
mwojtyczka Oct 18, 2025
2a491f1
added clean up test
mwojtyczka Oct 18, 2025
60d12e7
test
mwojtyczka Oct 18, 2025
e78d660
test
mwojtyczka Oct 18, 2025
ac5a8d7
test
mwojtyczka Oct 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os
from datetime import timedelta
from typing import Any
import re
import logging
Expand All @@ -8,6 +9,8 @@

import pytest
from pyspark.sql.types import StructType, StructField, StringType, IntegerType
from databricks.sdk.errors import BadRequest
from databricks.sdk.retries import retried
from databricks.labs.blueprint.installation import Installation, MockInstallation
from databricks.labs.blueprint.tui import MockPrompts
from databricks.labs.blueprint.wheels import ProductInfo, WheelsV2
Expand Down Expand Up @@ -706,7 +709,6 @@ class LakebaseInstance:

@pytest.fixture
def make_lakebase_instance(ws, make_random):

def create() -> LakebaseInstance:
instance_name = f"dqxtest-{make_random(10).lower()}"
database_name = "dqx" # does not need to be random
Expand All @@ -715,10 +717,10 @@ def create() -> LakebaseInstance:
schema_name = "config" # auto-created when saving checks, can be static since each test create new db
table_name = "checks" # auto-created when saving checks, can be static since each test create new db

_ = ws.database.create_database_instance_and_wait(
database_instance=DatabaseInstance(name=instance_name, capacity=capacity)
)
logger.info(f"Successfully created database instance: {instance_name}")
# Retry logic handles BadRequest exceptions when database instance creation fails due to workspace quota limits.
# Retries are performed until the timeout is reached.
retriable = retried(on=[BadRequest], timeout=timedelta(minutes=6))
retriable(_create_lakebase_database)(capacity, instance_name)
Comment thread
mwojtyczka marked this conversation as resolved.
Outdated

ws.database.create_database_catalog(
DatabaseCatalog(
Expand All @@ -734,6 +736,12 @@ def create() -> LakebaseInstance:
name=instance_name, catalog=catalog_name, location=f"{database_name}.{schema_name}.{table_name}"
)

def _create_lakebase_database(capacity, instance_name):
Comment thread
mwojtyczka marked this conversation as resolved.
Outdated
_ = ws.database.create_database_instance_and_wait(
database_instance=DatabaseInstance(name=instance_name, capacity=capacity)
)
logger.info(f"Successfully created database instance: {instance_name}")

def delete(instance: LakebaseInstance) -> None:
try:
ws.database.delete_database_catalog(name=instance.catalog)
Expand Down
2 changes: 0 additions & 2 deletions tests/e2e/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
logging.getLogger("tests").setLevel("DEBUG")
logging.getLogger("databricks.labs.dqx").setLevel("DEBUG")

RETRY_INTERVAL_SECONDS = 30


@pytest.fixture
def library_ref() -> str:
Expand Down
1 change: 0 additions & 1 deletion tests/e2e/test_run_demos.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@


logger = logging.getLogger(__name__)
RETRY_INTERVAL_SECONDS = 30


def test_run_dqx_demo_library(make_notebook, make_schema, make_job, library_ref):
Expand Down
Loading