Exemple #1
0
def test_format_output_as_table(mocker):
    """ Format output using table format
    Given
    - data as list of dictionary
    [
        {
            "my_key": "my_first_value"
        },
        {
            "my_key": "my_first_value"
        }
    ]

    When
    - data is requested as table format

    Then
    - data is returned in table format
    """

    mocker.patch.dict("os.environ",
                      {ENV_VARS['OUTPUT_FORMAT']: FORMATS['TABLE']})

    data = [{'my_key': 'my_first_value'}, {'my_key': 'my_second_value'}]

    expected_result = ("my_key        \t\t\n"
                       "--------------\t\t\n"
                       "my_first_value\t\t\n"
                       "my_second_value\t\t")
    assert core_utils.format_output(data) == expected_result
Exemple #2
0
def test_format_output_as_json(mocker):
    """ Format output using JSON format
    Given
    - data as list of dictionary
    [
        {
            "foo": "bar"
        },
        {
            "foo": "baz"
        }
    ]

    When
    - data is requested as json format

    Then
    - data is returned in pretty JSON format
    """

    mocker.patch.dict("os.environ",
                      {ENV_VARS['OUTPUT_FORMAT']: FORMATS['JSON']})

    data = [{'foo': 'bar'}, {'foo': 'baz'}]

    expected_result = json.dumps(data, indent=4, sort_keys=True)
    assert core_utils.format_output(data) == expected_result
Exemple #3
0
    def log(msg, *args):
        """Logs a message"""

        # if args are provided, assume string formatting is required
        if args:
            msg %= args

        click.echo(format_output(msg), file=sys.stderr)
Exemple #4
0
def test_invalid_format_output(mocker):
    """ Invalid format output environment variable value
    Given
    - ENV_VARS['OUTPUT_FORMAT'] contains invalid value

    When
    - data is requested to be formatted

    Then
    - 'ClickException' error is raised
    """

    mocker.patch.dict("os.environ", {ENV_VARS['OUTPUT_FORMAT']: 'foo'})

    with pytest.raises(click.exceptions.ClickException) as error:
        core_utils.format_output({'foo': 'bar'})
    assert error.value.args[0] == "Unsupported format foo"
Exemple #5
0
def test_format_output_as_default():
    """ Format output using default format (JSON)
    Given
    - data as list of dictionary
    [
        {
            "foo": "bar"
        },
        {
            "foo": "baz"
        }
    ]

    When
    - data is requested as default format

    Then
    - data is returned in pretty JSON format
    """

    data = [{'foo': 'bar'}, {'foo': 'baz'}]

    expected_result = json.dumps(data, indent=4, sort_keys=True)
    assert core_utils.format_output(data) == expected_result