Skip to content

Commit

Permalink
commit
Browse files Browse the repository at this point in the history
  • Loading branch information
israelpoli committed Mar 20, 2024
1 parent 882776d commit b2fc823
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 31 deletions.
32 changes: 10 additions & 22 deletions demisto_sdk/commands/validate/tests/GF_validators_test.py
Expand Up @@ -6,30 +6,18 @@
)


@pytest.mark.parametrize(
"content_items, expected_number_of_failures, expected_msg",
[
(
[
create_generic_field_object(paths=["id"], values=["test"]),
create_generic_field_object(paths=["id"], values=["generic_test"]),
],
1,
"ID test is not a valid generic field ID - it should start with the prefix generic_.",
)
],
)
def test_GenericFieldIdPrefixValidateValidator_is_valid(
content_items, expected_number_of_failures: int, expected_msg: str
):
results = GenericFieldIdPrefixValidateValidator().is_valid(content_items)
assert len(results) == expected_number_of_failures
assert all(result.message == expected_msg for result in results)
def test_GenericFieldIdPrefixValidateValidator_is_valid():
content_item = create_generic_field_object(paths=["id"], values=["foo"])
results = GenericFieldIdPrefixValidateValidator().is_valid([content_item])
assert (
results[0].message
== "ID `foo` is not valid, it should start with the prefix `generic_`."
)


def test_GenericFieldIdPrefixValidateValidator_fix():
generic_field = create_generic_field_object(paths=["id"], values=["test"])
generic_field = create_generic_field_object(paths=["id"], values=["foo"])

result = GenericFieldIdPrefixValidateValidator().fix(generic_field) # type:ignore
assert result
assert result.message == "Change the value of `id` field to generic_test."
assert result.message == "Change the value of `id` field to `generic_foo`."
5 changes: 3 additions & 2 deletions demisto_sdk/commands/validate/tests/test_tools.py
Expand Up @@ -9,6 +9,7 @@
from demisto_sdk.commands.common.handlers import DEFAULT_JSON_HANDLER as json
from demisto_sdk.commands.common.tools import set_value
from demisto_sdk.commands.content_graph.objects.base_content import BaseContent
from demisto_sdk.commands.content_graph.objects.generic_field import GenericField
from demisto_sdk.commands.content_graph.objects.incident_field import IncidentField
from demisto_sdk.commands.content_graph.objects.integration import Integration
from demisto_sdk.commands.content_graph.objects.pack import Pack
Expand Down Expand Up @@ -590,7 +591,7 @@ def create_generic_definition_object(

def create_generic_field_object(
paths: Optional[List[str]] = None, values: Optional[List[Any]] = None
):
) -> GenericField:
"""Creating an generic_field object with altered fields from a default generic_field json structure.
Args:
Expand All @@ -604,7 +605,7 @@ def create_generic_field_object(
update_keys(json_content, paths, values)
pack = REPO.create_pack()
pack.create_generic_field(name="generic_field", content=json_content)
return BaseContent.from_path(Path(pack.generic_fields[0].path))
return cast(GenericField, BaseContent.from_path(Path(pack.generic_fields[0].path)))


def create_generic_type_object(
Expand Down
Expand Up @@ -2,7 +2,6 @@

from typing import Iterable, List

from demisto_sdk.commands.common.constants import RelatedFileType
from demisto_sdk.commands.content_graph.objects.generic_field import GenericField
from demisto_sdk.commands.validate.validators.base_validator import (
BaseValidator,
Expand All @@ -21,7 +20,6 @@ class GenericFieldGroupValidator(BaseValidator[ContentTypes]):
fix_message = ""
related_field = "group"
is_auto_fixable = True
related_file_type = [RelatedFileType.JSON]

def is_valid(self, content_items: Iterable[ContentTypes]) -> List[ValidationResult]:
return [
Expand Down
Expand Up @@ -2,7 +2,6 @@

from typing import Iterable, List

from demisto_sdk.commands.common.constants import RelatedFileType
from demisto_sdk.commands.content_graph.objects.generic_field import GenericField
from demisto_sdk.commands.validate.validators.base_validator import (
BaseValidator,
Expand All @@ -16,12 +15,12 @@

class GenericFieldIdPrefixValidateValidator(BaseValidator[ContentTypes]):
error_code = "GF101"
description = "Validate the id field include prefix `generic_`"
error_message = "ID {generic_id} is not a valid generic field ID - it should start with the prefix {generic_id_prefix}."
fix_message = "Change the value of `id` field to {generic_id}."
rationale = "Required by the platform."
description = "Checks if `id` field include prefix `generic_`"
error_message = "ID `{generic_id}` is not valid, it should start with the prefix `{generic_id_prefix}`."
fix_message = "Change the value of `id` field to `{generic_id}`."
related_field = "id"
is_auto_fixable = True
related_file_type = [RelatedFileType.JSON]

def is_valid(self, content_items: Iterable[ContentTypes]) -> List[ValidationResult]:
return [
Expand Down

0 comments on commit b2fc823

Please sign in to comment.