1# -*- coding: utf-8 -*-
2# Copyright (c) 2015 Spotify AB
3from __future__ import absolute_import, division, print_function
4
5import os
6
7import pytest
8
9from ramlfications import tree, parser
10from ramlfications.config import setup_config
11from ramlfications._helpers import load_file
12
13from .base import EXAMPLES
14from .data.fixtures import tree_fixtures
15
16
17@pytest.fixture(scope="session")
18def api():
19    raml_str = os.path.join(EXAMPLES, "simple-tree.raml")
20    loaded_raml = load_file(raml_str)
21    config_file = os.path.join(EXAMPLES + "test-config.ini")
22    config = setup_config(config_file)
23    return parser.parse_raml(loaded_raml, config)
24
25
26def print_tree(root, color, verbosity):
27    resources = tree._get_tree(root)
28    return tree._print_tree(root, resources, color, verbosity)
29
30
31def test_print_tree_no_color(api, capsys):
32    expected_result = tree_fixtures.tree_no_color
33    print_tree(api, None, 0)
34
35    out, err = capsys.readouterr()
36
37    assert out == expected_result
38
39
40def test_print_tree_light(api, capsys):
41    expected_result = tree_fixtures.tree_light
42    print_tree(api, "light", 0)
43
44    out, err = capsys.readouterr()
45
46    assert out == expected_result
47
48
49def test_print_tree_dark(api, capsys):
50    expected_result = tree_fixtures.tree_dark
51    print_tree(api, "dark", 0)
52
53    out, err = capsys.readouterr()
54
55    assert out == expected_result
56
57
58@pytest.mark.skipif(1 == 1, reason="HALP! I AM COLORBLIND")
59def test_print_tree_light_v(api, capsys):
60    expected_result = tree_fixtures.tree_light_v
61    print_tree(api, "light", 1)
62
63    out, err = capsys.readouterr()
64    print(out)
65    print(expected_result)
66    assert out == expected_result
67
68
69@pytest.mark.skipif(1 == 1, reason="HALP! I AM COLORBLIND")
70def test_print_tree_light_vv(api, capsys):
71    expected_result = tree_fixtures.tree_light_vv
72    print_tree(api, "light", 2)
73
74    out, err = capsys.readouterr()
75
76    assert out == expected_result
77
78
79@pytest.mark.skipif(1 == 1, reason="HALP! I AM COLORBLIND")
80def test_print_tree_light_vvv(api, capsys):
81    expected_result = tree_fixtures.tree_light_vvv
82    print_tree(api, "light", 3)
83
84    out, err = capsys.readouterr()
85
86    assert out == expected_result
87