示例#1
0
 def test_no_escape_chars_dump(self, tmpdir, slash_count: int):
     """Check that a dumped json has no escape chars"""
     file_ = tmpdir / 'file.json'
     slashes = '/' * slash_count
     url = f'https:{slashes}xsoar.com'
     JSON_Handler().dump({'url': url}, file_.open('w+'))
     assert url in file_.open().read()
示例#2
0
def test_dump_with_price(mocker):
    def mock_json_dump(file_content, metadata_file, indent):
        assert file_content['premium'] is not None
        assert file_content['vendorId']
        assert file_content['vendorName']

    import builtins

    from demisto_sdk.commands.common.handlers import JSON_Handler
    json = JSON_Handler()

    obj = PackMetaData(PACK_METADATA)
    obj.price = 1
    obj.premium = True
    obj.vendor_id = 'id'
    obj.vendor_name = 'name'

    mocker.patch.object(builtins, 'open', autospec=True)
    mocker.patch.object(json, 'dump', side_effect=mock_json_dump)

    obj.dump_metadata_file('metadata_file')
示例#3
0
    INTEGRATION_TARGET, INVALID_DASHBOARD_PATH, INVALID_INTEGRATION_ID_PATH,
    INVALID_INTEGRATION_YML_1, INVALID_INTEGRATION_YML_2,
    INVALID_INTEGRATION_YML_3, INVALID_INTEGRATION_YML_4,
    INVALID_LAYOUT_CONTAINER_PATH, INVALID_LAYOUT_PATH, INVALID_PLAYBOOK_PATH,
    INVALID_REPUTATION_FILE, INVALID_WIDGET_PATH, LAYOUT_TARGET,
    LAYOUTS_CONTAINER_TARGET, PLAYBOOK_PACK_TARGET, PLAYBOOK_TARGET,
    VALID_DASHBOARD_PATH, VALID_INTEGRATION_ID_PATH,
    VALID_INTEGRATION_TEST_PATH, VALID_LAYOUT_CONTAINER_PATH,
    VALID_LAYOUT_PATH, VALID_PLAYBOOK_ARCSIGHT_ADD_DOMAIN_PATH,
    VALID_PLAYBOOK_ID_PATH, VALID_REPUTATION_FILE, VALID_TEST_PLAYBOOK_PATH,
    VALID_WIDGET_PATH, WIDGET_TARGET)
from TestSuite.json_based import JSONBased
from TestSuite.pack import Pack
from TestSuite.test_tools import ChangeCWD

json = JSON_Handler()
yaml = YAML_Handler()


class TestStructureValidator:
    INPUTS_TARGETS = [
        LAYOUTS_CONTAINER_TARGET,
        LAYOUT_TARGET,
        DASHBOARD_TARGET,
        WIDGET_TARGET,
        PLAYBOOK_TARGET,
        INTEGRATION_TARGET,
        INCIDENT_FIELD_TARGET,
        PLAYBOOK_PACK_TARGET,
    ]
    CREATED_DIRS = list()  # type: List
示例#4
0
 def test_no_escape_chars_dumps(self, slash_count: int):
     """Check that a dumped json has no escape chars"""
     slashes = '/' * slash_count
     url = f'https:{slashes}xsoar.com'
     dumped = JSON_Handler().dumps({'url': url})
     assert url in dumped, 'Could not find the url in the dumped file. Maybe escaped char?'
from demisto_sdk.commands.common.constants import (
    CONTEXT_OUTPUT_README_TABLE_HEADER, DOCS_COMMAND_SECTION_REGEX)
from demisto_sdk.commands.common.default_additional_info_loader import \
    load_default_additional_info_dict
from demisto_sdk.commands.common.handlers import JSON_Handler
from demisto_sdk.commands.common.tools import (LOG_COLORS, get_yaml,
                                               print_color, print_error,
                                               print_warning)
from demisto_sdk.commands.generate_docs.common import (
    add_lines, build_example_dict, generate_numbered_section, generate_section,
    generate_table_section, save_output, string_escape_md)
from demisto_sdk.commands.integration_diff.integration_diff_detector import \
    IntegrationDiffDetector

json = JSON_Handler()

CREDENTIALS = 9


def append_or_replace_command_in_docs(old_docs: str, new_doc_section: str,
                                      command_name: str) -> Tuple[str, list]:
    """ Replacing a command in a README.md file with a new string.

    Args:
        old_docs: the old docs string
        new_doc_section: the new string to replace
        command_name: the command name itself

    Returns:
        str: The whole documentation.
import shutil

import pytest
import requests
from click.testing import CliRunner
from mock import patch

from demisto_sdk.__main__ import main
from demisto_sdk.commands.common.handlers import JSON_Handler, YAML_Handler
from demisto_sdk.commands.common.legacy_git_tools import git_path
from demisto_sdk.commands.common.tools import get_yaml
from demisto_sdk.commands.unify.integration_script_unifier import \
    IntegrationScriptUnifier
from TestSuite.test_tools import ChangeCWD

json = JSON_Handler()
yaml = YAML_Handler()

TEST_VALID_CODE = '''import demistomock as demisto
from CommonServerPython import *

def main():
    return_error('Not implemented.')
​
if __name__ in ('builtins', '__builtin__', '__main__'):
    main()
'''

TEST_VALID_DETAILED_DESCRIPTION = '''first line
second line
from pathlib import Path
from typing import Optional

import pytest

from demisto_sdk.commands.common.handlers import JSON_Handler
from demisto_sdk.commands.common.tools import run_command
from demisto_sdk.commands.generate_outputs.json_to_outputs.json_to_outputs import (
    determine_type, json_to_outputs, parse_json)

json = JSON_Handler()

DUMMY_FIELD_DESCRIPTION = "dummy field description"
TEST_PATH = Path('demisto_sdk/commands/generate_outputs/json_to_outputs/tests')


def git_path() -> str:
    path = run_command('git rev-parse --show-toplevel')
    return path.replace('\n', '')


def test_json_to_outputs__json_from_file():
    """
    Given
        - valid json file: {"aaa":100,"bbb":"foo"}
        - prefix: XDR.Incident
        - command: xdr-get-incidents
    When
        - passed to json_to_outputs
    Then
        - ensure outputs generated in the following format