예제 #1
0
def test_inner_combine():
    ext1 = combine({"foo": 1}, {"foo": 11})
    css = {
        "%ext2": combine({"bar": 2}, {"bar": 22}),
        "qux": extend(ext1, "ext2", css=combine({"baz": 3}, {"baz": 33})),
        "zzz": extend(ext1, "ext2", css=combine({"zzz": 4}, {"zzz": 44}))
    }

    assert render_css(css) == """\
예제 #2
0
파일: test_vars.py 프로젝트: twidi/mixt
def test_combine():
    assert vars.combine == "combine"

    css = vars.combine()
    assert isinstance(css, dict)
    assert css == {}

    css1 = {"a": "b"}
    css = vars.combine(css1)
    assert isinstance(css, dict)
    assert css == {"a": "b"}

    css1 = {"a": "b"}
    css2 = {"aa": "bb"}
    css3 = {"aaa": "bbb"}
    css = vars.combine(css1, css2, css3)
    assert isinstance(css, dict)
    assert css == {"a": "b", "aa": "bb", "aaa": "bbb"}

    css2 = {"a": "bb"}
    css = vars.combine(css1, css2, css3)
    assert isinstance(css, vars.Combine)
    assert css.dicts == [
        {
            "a": "b"
        },
        {
            "a": "bb"
        },
        {
            "aaa": "bbb"
        },
    ]

    css4 = {"a": "bbbb"}
    css = vars.combine(css, css4)
    assert isinstance(css, vars.Combine)
    assert css.dicts == [
        {
            "a": "b"
        },
        {
            "a": "bb"
        },
        {
            "aaa": "bbb"
        },
        {
            "a": "bbbb"
        },
    ]
예제 #3
0
def test_combine():
    css = combine({".foo": {
        "a": {
            "color": "blue"
        }
    }}, {
        ".bar": {
            "color": "white"
        },
        ".foo": {
            "color":
            "red",
            "a":
            combine({"color": "yellow"}, {
                "text-decoration": "underline",
                "color": "pink",
            })
        },
    })

    assert (render_css(css, mode=Modes.NORMAL) == """\
.foo a {
  color: blue;
}
.bar {
  color: white;
}
.foo {
  color: red;
}
.foo a {
  color: yellow;
  text-decoration: underline;
  color: pink;
}
""")
예제 #4
0
def test_with_combine():
    lib = {
        '%my-extend': {
            "margin": "1px"
        },
    }

    css = {
        ".foo": {
            "margin": "2px"
        },
        ".bar": extend('my-extend'),
        ".baz": {
            "a": {
                "margin": "3px"
            },
            "b": extend('my-extend', css={"margin": "4px"}),
        }
    }

    assert render_css(combine(lib, css)) == """\
예제 #5
0
    def render_accumulated_collected_to_string(self, acc: List) -> str:
        """Render the accumulated CSS parts to a string.

        All the parts are aggregated in a ``Combine``, that will convert strings to ``Raw``.
        This allow any parts to use "extends" defined previously.

        For the parameters, see ``Collector.render_accumulated_collected_to_string``.

        Returns
        -------
        str
            The final CSS to display.

        """
        final_list: List = []
        for item in acc:
            if isinstance(item, Combine) or not callable(item):
                final_list.append(item)
                continue

            self.render_one_collected(item(), final_list)

        return get_default_mode().value["endline"] + render_css(
            combine(*final_list))