From 0dd49e34298c3ccf8b5035290cb4364d7849008e Mon Sep 17 00:00:00 2001 From: Serge Smertin Date: Wed, 18 Sep 2024 14:40:38 +0200 Subject: [PATCH] Release v0.2.1 * Moved remaining UCX integration tests and fixtures ([#45](https://github.com/databrickslabs/pytester/issues/45)). In this release, we have made significant changes to the UCX integration tests and fixtures, as indicated by multiple commit messages. Firstly, we have moved remaining UCX integration tests and fixtures, introducing a new PyTest fixture called `Installation` in the README.md file, providing instructions on how to add `databricks-labs-pytester` as a test-time dependency when using `hatch` as the build system. Additionally, we have added the `make_feature_table` fixture, which creates a Databricks feature table and cleans it up after the test, taking optional parameters for customization. We have also modified the `mypy` configuration in the `pyproject.toml` file to allow untyped imports during the type-checking process. In the `compute.py` file, we have updated the `make_job` fixture to return a function that creates a `databricks.sdk.service.jobs.Job` instance, and modified the `create` function to return the `databricks.sdk.service.jobs.Job` instance directly. We have also added a new fixture called `make_feature_table` in the plugin file, which simulates the lifecycle of a feature table in the machine learning service, with functions to generate a unique name and create/remove the feature table. In the `test_catalog.py` file, we have made changes to clean up the file and ensure proper logging of test events and errors. Overall, these changes aim to refactor, expand functionality, and improve user-friendliness for the adopters of the project, ensuring proper logging and debugging capabilities. * [internal] port over existing UCX integration tests ([#44](https://github.com/databrickslabs/pytester/issues/44)). Three new integration tests have been added to the UCX project to verify the functionality of the `RemoveAfter` property for tables and schemas. The `test_remove_after_property_table` and `test_remove_after_property_schema` tests create new tables and schemas, respectively, and check if the `RemoveAfter` property is included in their properties. However, these tests are still marked as `TODO` due to existing issues with the `tables.get` and `schemas.get` functions. In addition, existing UCX integration tests have been ported over, which include new functions for testing the removal of resources based on the `RemoveAfter` tag. These tests are located in the `tests/integration/fixtures/test_compute.py` file and test the removal of various types of resources, including jobs, clusters, warehouses, and instance pools. The tests ensure that the time until purge is less than the `TEST_RESOURCE_PURGE_TIMEOUT` value plus one hour and import the `datetime` module and the `TEST_RESOURCE_PURGE_TIMEOUT` constant from the `watchdog` fixture, as well as the `logging` and `databricks.sdk.service.iam` modules. --- CHANGELOG.md | 6 ++++++ src/databricks/labs/pytester/__about__.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dad1048..5015796 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version changelog +## 0.2.1 + +* Moved remaining UCX integration tests and fixtures ([#45](https://github.com/databrickslabs/pytester/issues/45)). In this release, we have made significant changes to the UCX integration tests and fixtures, as indicated by multiple commit messages. Firstly, we have moved remaining UCX integration tests and fixtures, introducing a new PyTest fixture called `Installation` in the README.md file, providing instructions on how to add `databricks-labs-pytester` as a test-time dependency when using `hatch` as the build system. Additionally, we have added the `make_feature_table` fixture, which creates a Databricks feature table and cleans it up after the test, taking optional parameters for customization. We have also modified the `mypy` configuration in the `pyproject.toml` file to allow untyped imports during the type-checking process. In the `compute.py` file, we have updated the `make_job` fixture to return a function that creates a `databricks.sdk.service.jobs.Job` instance, and modified the `create` function to return the `databricks.sdk.service.jobs.Job` instance directly. We have also added a new fixture called `make_feature_table` in the plugin file, which simulates the lifecycle of a feature table in the machine learning service, with functions to generate a unique name and create/remove the feature table. In the `test_catalog.py` file, we have made changes to clean up the file and ensure proper logging of test events and errors. Overall, these changes aim to refactor, expand functionality, and improve user-friendliness for the adopters of the project, ensuring proper logging and debugging capabilities. +* [internal] port over existing UCX integration tests ([#44](https://github.com/databrickslabs/pytester/issues/44)). Three new integration tests have been added to the UCX project to verify the functionality of the `RemoveAfter` property for tables and schemas. The `test_remove_after_property_table` and `test_remove_after_property_schema` tests create new tables and schemas, respectively, and check if the `RemoveAfter` property is included in their properties. However, these tests are still marked as `TODO` due to existing issues with the `tables.get` and `schemas.get` functions. In addition, existing UCX integration tests have been ported over, which include new functions for testing the removal of resources based on the `RemoveAfter` tag. These tests are located in the `tests/integration/fixtures/test_compute.py` file and test the removal of various types of resources, including jobs, clusters, warehouses, and instance pools. The tests ensure that the time until purge is less than the `TEST_RESOURCE_PURGE_TIMEOUT` value plus one hour and import the `datetime` module and the `TEST_RESOURCE_PURGE_TIMEOUT` constant from the `watchdog` fixture, as well as the `logging` and `databricks.sdk.service.iam` modules. + + ## 0.2.0 * Added `acc` and `make_acc_group` fixtures ([#42](https://github.com/databrickslabs/pytester/issues/42)). In this release, we have added two new fixtures, `acc` and `make_acc_group`, to the open-source library. The `acc` fixture provides a Databricks AccountClient object for use in tests, which can interact with the Databricks account API and automatically determines the account host from the `DATABRICKS_HOST` environment variable. The `make_acc_group` fixture is used for managing Databricks account groups, creating them with specified members and roles, and automatically deleting them after the test is complete. This fixture mirrors the behavior of the `make_group` fixture but interacts with the account client instead of the workspace client. These fixtures enable more comprehensive integration tests for the `acc` object and its various methods, enhancing the testing and management of Databricks account groups. diff --git a/src/databricks/labs/pytester/__about__.py b/src/databricks/labs/pytester/__about__.py index d3ec452..3ced358 100644 --- a/src/databricks/labs/pytester/__about__.py +++ b/src/databricks/labs/pytester/__about__.py @@ -1 +1 @@ -__version__ = "0.2.0" +__version__ = "0.2.1"