Skip to content

Commit

Permalink
[MAINTENANCE] Rename context.validations to context.validation_defini…
Browse files Browse the repository at this point in the history
…tions (#9660)
  • Loading branch information
billdirks committed Mar 25, 2024
1 parent fdf2a2e commit 0909a0e
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 40 deletions.
2 changes: 1 addition & 1 deletion great_expectations/core/factory/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
from .checkpoint_factory import CheckpointFactory
from .suite_factory import SuiteFactory
from .validation_factory import ValidationFactory
from .validation_definition_factory import ValidationDefinitionFactory
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@


# TODO: Add analytics as needed
class ValidationFactory(Factory[ValidationDefinition]):
class ValidationDefinitionFactory(Factory[ValidationDefinition]):
def __init__(self, store: ValidationDefinitionStore) -> None:
self._store = store

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
from great_expectations.core.factory import (
CheckpointFactory,
SuiteFactory,
ValidationFactory,
ValidationDefinitionFactory,
)
from great_expectations.core.serializer import (
AbstractConfigSerializer,
Expand Down Expand Up @@ -330,7 +330,7 @@ def _init_factories(self) -> None:
context=self,
)

self._validation_definitions: ValidationFactory = ValidationFactory(
self._validation_definitions: ValidationDefinitionFactory = ValidationDefinitionFactory(
store=self.validation_definition_store
)

Expand Down Expand Up @@ -553,7 +553,7 @@ def checkpoints(self) -> CheckpointFactory:
return self._checkpoints

@property
def validations(self) -> ValidationFactory:
def validation_definitions(self) -> ValidationDefinitionFactory:
if not self._validation_definitions:
raise gx_exceptions.DataContextError(
"DataContext requires a configured ValidationDefinitionStore to persist "
Expand Down
4 changes: 2 additions & 2 deletions tests/checkpoint/test_v1_checkpoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ def validation_definition_1(
"json",
return_value=json.dumps({"id": str(uuid.uuid4()), "name": name}),
):
yield in_memory_context.validations.add(vc)
yield in_memory_context.validation_definitions.add(vc)

@pytest.fixture
def validation_definition_2(
Expand All @@ -102,7 +102,7 @@ def validation_definition_2(
"json",
return_value=json.dumps({"id": str(uuid.uuid4()), "name": name}),
):
yield in_memory_context.validations.add(vc)
yield in_memory_context.validation_definitions.add(vc)

@pytest.fixture
def validation_definitions(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@

from great_expectations.core.batch_definition import BatchDefinition
from great_expectations.core.expectation_suite import ExpectationSuite
from great_expectations.core.factory.validation_factory import ValidationFactory
from great_expectations.core.factory.validation_definition_factory import (
ValidationDefinitionFactory,
)
from great_expectations.core.validation_definition import ValidationDefinition
from great_expectations.data_context.data_context.abstract_data_context import (
AbstractDataContext,
Expand Down Expand Up @@ -62,7 +64,7 @@ def validation_definition_json(validation_definition: ValidationDefinition) -> s


@pytest.mark.unit
def test_validation_factory_get_uses_store_get(
def test_validation_definition_factory_get_uses_store_get(
mocker: MockerFixture, validation_definition: ValidationDefinition
):
# Arrange
Expand All @@ -71,7 +73,7 @@ def test_validation_factory_get_uses_store_get(
store.has_key.return_value = True
key = store.get_key.return_value
store.get.return_value = validation_definition
factory = ValidationFactory(store=store)
factory = ValidationDefinitionFactory(store=store)

# Act
result = factory.get(name=name)
Expand All @@ -82,7 +84,7 @@ def test_validation_factory_get_uses_store_get(


@pytest.mark.unit
def test_validation_factory_get_raises_error_on_missing_key(
def test_validation_definition_factory_get_raises_error_on_missing_key(
mocker: MockerFixture,
validation_definition: ValidationDefinition,
):
Expand All @@ -91,7 +93,7 @@ def test_validation_factory_get_raises_error_on_missing_key(
store = mocker.Mock(spec=ValidationDefinitionStore)
store.has_key.return_value = False
store.get.return_value = validation_definition
factory = ValidationFactory(store=store)
factory = ValidationDefinitionFactory(store=store)

# Act
with pytest.raises(
Expand All @@ -104,14 +106,14 @@ def test_validation_factory_get_raises_error_on_missing_key(


@pytest.mark.unit
def test_validation_factory_add_uses_store_add(
def test_validation_definition_factory_add_uses_store_add(
mocker: MockerFixture, validation_definition: ValidationDefinition
):
# Arrange
store = mocker.Mock(spec=ValidationDefinitionStore)
store.has_key.return_value = False
key = store.get_key.return_value
factory = ValidationFactory(store=store)
factory = ValidationDefinitionFactory(store=store)
store.get.return_value = validation_definition

# Act
Expand All @@ -122,15 +124,15 @@ def test_validation_factory_add_uses_store_add(


@pytest.mark.unit
def test_validation_factory_add_raises_for_duplicate_key(
def test_validation_definition_factory_add_raises_for_duplicate_key(
mocker: MockerFixture,
validation_definition: ValidationDefinition,
):
# Arrange
name = validation_definition.name
store = mocker.Mock(spec=ValidationDefinitionStore)
store.has_key.return_value = True
factory = ValidationFactory(store=store)
factory = ValidationDefinitionFactory(store=store)

# Act
with pytest.raises(
Expand All @@ -144,15 +146,15 @@ def test_validation_factory_add_raises_for_duplicate_key(


@pytest.mark.unit
def test_validation_factory_delete_uses_store_remove_key(
def test_validation_definition_factory_delete_uses_store_remove_key(
mocker: MockerFixture,
validation_definition: ValidationDefinition,
):
# Arrange
store = mocker.Mock(spec=ValidationDefinitionStore)
store.has_key.return_value = True
key = store.get_key.return_value
factory = ValidationFactory(store=store)
factory = ValidationDefinitionFactory(store=store)

# Act
factory.delete(validation=validation_definition)
Expand All @@ -164,15 +166,15 @@ def test_validation_factory_delete_uses_store_remove_key(


@pytest.mark.unit
def test_validation_factory_delete_raises_for_missing_validation(
def test_validation_definition_factory_delete_raises_for_missing_validation(
mocker: MockerFixture,
validation_definition: ValidationDefinition,
):
# Arrange
name = validation_definition.name
store = mocker.Mock(spec=ValidationDefinitionStore)
store.has_key.return_value = False
factory = ValidationFactory(store=store)
factory = ValidationDefinitionFactory(store=store)

# Act
with pytest.raises(
Expand All @@ -186,27 +188,27 @@ def test_validation_factory_delete_raises_for_missing_validation(


@pytest.mark.filesystem
def test_validation_factory_is_initialized_with_context_filesystem(
def test_validation_definition_factory_is_initialized_with_context_filesystem(
empty_data_context: FileDataContext,
):
assert isinstance(empty_data_context.validations, ValidationFactory)
assert isinstance(empty_data_context.validation_definitions, ValidationDefinitionFactory)


@pytest.mark.cloud
def test_validation_factory_is_initialized_with_context_cloud(
def test_validation_definition_factory_is_initialized_with_context_cloud(
empty_cloud_data_context: CloudDataContext,
):
assert isinstance(empty_cloud_data_context.validations, ValidationFactory)
assert isinstance(empty_cloud_data_context.validation_definitions, ValidationDefinitionFactory)


@pytest.mark.filesystem
def test_validation_factory_add_success_filesystem(
def test_validation_definition_factory_add_success_filesystem(
empty_data_context: FileDataContext,
validation_definition: ValidationDefinition,
validation_definition_json: str,
mocker: MockerFixture,
):
_test_validation_factory_add_success(
_test_validation_definition_factory_add_success(
mocker=mocker,
context=empty_data_context,
validation_definition=validation_definition,
Expand All @@ -215,21 +217,21 @@ def test_validation_factory_add_success_filesystem(


@pytest.mark.cloud
def test_validation_factory_add_success_cloud(
def test_validation_definition_factory_add_success_cloud(
empty_cloud_context_fluent: CloudDataContext,
validation_definition: ValidationDefinition,
validation_definition_json: str,
mocker: MockerFixture,
):
_test_validation_factory_add_success(
_test_validation_definition_factory_add_success(
mocker=mocker,
context=empty_cloud_context_fluent,
validation_definition=validation_definition,
validation_definition_json=validation_definition_json,
)


def _test_validation_factory_add_success(
def _test_validation_definition_factory_add_success(
mocker: MockerFixture,
context: AbstractDataContext,
validation_definition: ValidationDefinition,
Expand All @@ -240,11 +242,11 @@ def _test_validation_factory_add_success(
with pytest.raises(
DataContextError, match=f"ValidationDefinition with name {name} was not found."
):
context.validations.get(name)
context.validation_definitions.get(name)

# Act
with mocker.patch.object(ValidationDefinition, "json", return_value=validation_definition_json):
created_validation = context.validations.add(validation=validation_definition)
created_validation = context.validation_definitions.add(validation=validation_definition)

# Assert
validation_names = {
Expand All @@ -254,13 +256,13 @@ def _test_validation_factory_add_success(


@pytest.mark.filesystem
def test_validation_factory_delete_success_filesystem(
def test_validation_definition_factory_delete_success_filesystem(
empty_data_context: FileDataContext,
validation_definition: ValidationDefinition,
validation_definition_json: str,
mocker: MockerFixture,
):
_test_validation_factory_delete_success(
_test_validation_definition_factory_delete_success(
mocker=mocker,
context=empty_data_context,
validation_definition=validation_definition,
Expand All @@ -269,21 +271,21 @@ def test_validation_factory_delete_success_filesystem(


@pytest.mark.cloud
def test_validation_factory_delete_success_cloud(
def test_validation_definition_factory_delete_success_cloud(
empty_cloud_context_fluent: CloudDataContext,
validation_definition: ValidationDefinition,
validation_definition_json: str,
mocker: MockerFixture,
):
_test_validation_factory_delete_success(
_test_validation_definition_factory_delete_success(
mocker=mocker,
context=empty_cloud_context_fluent,
validation_definition=validation_definition,
validation_definition_json=validation_definition_json,
)


def _test_validation_factory_delete_success(
def _test_validation_definition_factory_delete_success(
mocker: MockerFixture,
context: AbstractDataContext,
validation_definition: ValidationDefinition,
Expand All @@ -293,19 +295,19 @@ def _test_validation_factory_delete_success(
name = validation_definition.name

with mocker.patch.object(ValidationDefinition, "json", return_value=validation_definition_json):
validation_definition = context.validations.add(validation=validation_definition)
validation_definition = context.validation_definitions.add(validation=validation_definition)

# Act
context.validations.delete(validation_definition)
context.validation_definitions.delete(validation_definition)

# Assert
with pytest.raises(
DataContextError,
match=f"ValidationDefinition with name {name} was not found.",
):
context.validations.get(name)
context.validation_definitions.get(name)


class TestValidationFactoryAnalytics:
class TestValidationDefinitionFactoryAnalytics:
# TODO: Write tests once analytics are in place
pass

0 comments on commit 0909a0e

Please sign in to comment.