Exemplo n.º 1
0
def test_jinja_x86_64(monkeypatch):
    template = "{{ x86_64 }}"

    monkeypatch.setattr(platform, "machine", lambda: "x86")
    assert render_jinja(template, filename="", is_included=False) == "False"

    monkeypatch.setattr(platform, "machine", lambda: "x86_64")
    assert render_jinja(template, filename="", is_included=False) == "True"
Exemplo n.º 2
0
def test_jinja_x86_64(monkeypatch):
    template = "{{ x86_64 }}"

    monkeypatch.setattr(platform, 'machine', lambda: 'x86')
    assert render_jinja(template, filename="", is_included=False) == 'False'

    monkeypatch.setattr(platform, 'machine', lambda: 'x86_64')
    assert render_jinja(template, filename="", is_included=False) == 'True'
Exemplo n.º 3
0
def test_jinja_win64(monkeypatch):
    template = "{{ win64 }}"

    monkeypatch.setattr(sys, 'platform', 'win')

    monkeypatch.setattr(platform, 'architecture', lambda: ('32bit', ''))
    assert render_jinja(template, filename="", is_included=False) == 'False'

    monkeypatch.setattr(platform, 'architecture', lambda: ('64bit', ''))
    assert render_jinja(template, filename="", is_included=False) == 'True'
Exemplo n.º 4
0
def test_jinja_win64(monkeypatch):
    template = "{{ win64 }}"

    monkeypatch.setattr(sys, "platform", "win")

    monkeypatch.setattr(platform, "architecture", lambda: ("32bit", ""))
    assert render_jinja(template, filename="", is_included=False) == "False"

    monkeypatch.setattr(platform, "architecture", lambda: ("64bit", ""))
    assert render_jinja(template, filename="", is_included=False) == "True"
Exemplo n.º 5
0
def test_jinja_invalid_template():
    # TODO: change this to pytest's nicer syntax: with pytest.raises()
    try:
        render_jinja(textwrap.dedent("""\
                {%- if os.environ['ENV_VARIABLE'] == '1' %}
                {% %}
            """), filename="")
        pytest.fail("Should raise an exception")
    except jinja2.exceptions.TemplateSyntaxError as e:
        pass
Exemplo n.º 6
0
def test_jinja_invalid_template():
    with pytest.raises(jinja2.exceptions.TemplateSyntaxError):
        render_jinja(
            textwrap.dedent("""\
                {%- if os.environ['ENV_VARIABLE'] == '1' %}
                {% %}
            """),
            filename="",
            is_included=False,
        )
Exemplo n.º 7
0
def test_jinja_linux(monkeypatch):
    template = "{{ linux }}"

    monkeypatch.setattr(sys, "platform", "linux")
    assert render_jinja(template, filename="", is_included=False) == "True"

    monkeypatch.setattr(sys, "platform", "win")
    assert render_jinja(template, filename="", is_included=False) == "False"

    monkeypatch.setattr(sys, "platform", "darwin")
    assert render_jinja(template, filename="", is_included=False) == "False"
Exemplo n.º 8
0
def test_jinja_linux(monkeypatch):
    template = "{{ linux }}"

    monkeypatch.setattr(sys, 'platform', 'linux')
    assert render_jinja(template, filename="", is_included=False) == 'True'

    monkeypatch.setattr(sys, 'platform', 'win')
    assert render_jinja(template, filename="", is_included=False) == 'False'

    monkeypatch.setattr(sys, 'platform', 'darwin')
    assert render_jinja(template, filename="", is_included=False) == 'False'
Exemplo n.º 9
0
def test_jinja_os(monkeypatch):
    template = textwrap.dedent("""\
        {% if os.environ['ENV_VARIABLE'] == '1' -%}
        variable is set
        {%- else -%}
        variable is not set
        {%- endif %}
    """).strip()

    assert render_jinja(template, filename="") == "variable is not set"

    monkeypatch.setenv('ENV_VARIABLE', '1')
    assert render_jinja(template, filename="") == "variable is set"

    monkeypatch.setenv('ENV_VARIABLE', '2')
    assert render_jinja(template, filename="") == "variable is not set"
Exemplo n.º 10
0
def test_jinja_sys(monkeypatch):
    template = textwrap.dedent("""\
        {% if sys.platform.startswith('linux') -%}
        linux!
        {%- elif sys.platform.startswith('win') -%}
        windows!
        {%- else -%}
        others!
        {%- endif %}
    """).strip()

    monkeypatch.setattr(sys, 'platform', 'linux')
    assert render_jinja(template, filename="", is_included=False) == "linux!"

    monkeypatch.setattr(sys, 'platform', 'windows')
    assert render_jinja(template, filename="", is_included=False) == "windows!"

    monkeypatch.setattr(sys, 'platform', 'darwin')
    assert render_jinja(template, filename="", is_included=False) == "others!"
Exemplo n.º 11
0
def test_jinja_os(monkeypatch):
    template = textwrap.dedent("""\
        {% if os.environ['ENV_VARIABLE'] == '1' -%}
        variable is set
        {%- else -%}
        variable is not set
        {%- endif %}
    """).strip()

    assert (render_jinja(template, filename="",
                         is_included=False) == "variable is not set")

    monkeypatch.setenv("ENV_VARIABLE", "1")
    assert render_jinja(template, filename="",
                        is_included=False) == "variable is set"

    monkeypatch.setenv("ENV_VARIABLE", "2")
    assert (render_jinja(template, filename="",
                         is_included=False) == "variable is not set")
Exemplo n.º 12
0
def obtain_yaml_dicts(root_yaml_filename):
    contents = open(root_yaml_filename, "r").read()
    contents = render_jinja(contents, filename=root_yaml_filename, is_included=False)
    root_yaml = yaml.safe_load(contents)
    dicts = handle_includes(root_yaml_filename, root_yaml).values()
    dicts = list(dicts)

    # The list order does not matter, so we can"t use indices to fetch each item
    number_of_parsed_yamls = len(dicts)
    dicts = {d["name"]: d for d in dicts}
    # Make sure we're not removing any parsed yamls
    assert len(dicts) == number_of_parsed_yamls
    return dicts
Exemplo n.º 13
0
def test_render_jinja_with_preprocessing_selectors(monkeypatch):
    template = textwrap.dedent("""\
        {% set name = 'mylib' %}
        name: {{ name }}
        dependencies:
          - cmake
          - ccache    # [unix]
          - clcache   # [win] Windows has clcache instead of ccache
    """).strip()

    expected_unix = textwrap.dedent("""\
        name: mylib
        dependencies:
          - cmake
          - ccache    # [unix]
    """).strip()

    expected_win = textwrap.dedent("""\
        name: mylib
        dependencies:
          - cmake

          - clcache   # [win] Windows has clcache instead of ccache
    """).strip()

    monkeypatch.setattr(sys, 'platform', 'linux')
    actual_linux = render_jinja(template, filename="",
                                is_included=False).strip()

    monkeypatch.setattr(sys, 'platform', 'darwin')
    actual_osx = render_jinja(template, filename="", is_included=False).strip()

    monkeypatch.setattr(sys, 'platform', 'win')
    actual_win = render_jinja(template, filename="", is_included=False).strip()

    assert actual_linux == expected_unix
    assert actual_osx == expected_unix
    assert actual_win == expected_win
Exemplo n.º 14
0
def test_jinja_get_env(monkeypatch):
    template = "{{ get_env('PY', valid=['3.6']) }}"
    template_with_default = "{{ get_env('PY', default='3.6') }}"

    monkeypatch.setenv("PY", "3.6")
    assert render_jinja(template, filename="", is_included=False) == "3.6"

    monkeypatch.setenv("PY", "3.7")
    with pytest.raises(ValueError):
        render_jinja(template, filename="", is_included=False)

    monkeypatch.delenv("PY")
    with pytest.raises(ValueError):
        render_jinja(template, filename="", is_included=False)

    monkeypatch.delenv("PY", raising=False)
    assert render_jinja(template_with_default, filename="",
                        is_included=False) == "3.6"
Exemplo n.º 15
0
def test_jinja_root():
    assert render_jinja("{{root}}", filename="path/to/file") == os.path.abspath("path/to")
Exemplo n.º 16
0
def test_jinja_platform(monkeypatch):
    template = "{{ platform.python_revision() }}"
    assert render_jinja(template, filename="",
                        is_included=False) == platform.python_revision()
Exemplo n.º 17
0
def test_jinja_root():
    assert render_jinja(
        "{{root}}",
        filename="path/to/file",
        is_included=False,
    ) == os.path.abspath("path/to")