def test_add_lines_at_edge(self, dfparser): dfparser.content = dedent("""\ From builder CMD xyz LABEL a=b c=d""") # no newline dfparser.add_lines_at(2, "# something new", after=True) assert "d#" not in dfparser.content assert 4 == len(dfparser.lines) assert "something new" in dfparser.lines[3]
def test_add_lines_at_edge(self, dfparser): dfparser.content = dedent("""\ From builder CMD xyz ❤ LABEL a=b c=d e=❤""") # no newline dfparser.add_lines_at(2, "# something new ❤", after=True) assert "d#" not in dfparser.content assert 4 == len(dfparser.lines) assert "something new ❤" in dfparser.lines[3]
def test_replace_lines_at(self, dfparser, anchor): dfparser.content = dedent("""\ From builder CMD xyz ❤ LABEL a=b c=d """) dfparser.add_lines_at(anchor, "# something new ❤", replace=True) assert "something new ❤" in dfparser.lines[1] assert "CMD" not in dfparser.content
def test_replace_lines_at(self, dfparser, anchor): dfparser.content = dedent("""\ From builder CMD xyz LABEL a=b c=d """) dfparser.add_lines_at(anchor, "# something new", replace=True) assert "something new" in dfparser.lines[1] assert "CMD" not in dfparser.content
def test_add_lines_after(self, dfparser, anchor): dfparser.content = dedent("""\ From builder CMD xyz ❤ LABEL a=b c=d """) dfparser.add_lines_at(anchor, "# something new ❤", after=True) assert "something new ❤" in dfparser.lines[2] assert "CMD" in dfparser.lines[1] assert "LABEL" in dfparser.lines[3]
def test_add_lines_after(self, dfparser, anchor): dfparser.content = dedent("""\ From builder CMD xyz LABEL a=b c=d """) dfparser.add_lines_at(anchor, "# something new", after=True) assert "something new" in dfparser.lines[2] assert "CMD" in dfparser.lines[1] assert "LABEL" in dfparser.lines[3]
def test_replace_lines_continuation(self, dfparser): dfparser.content = dedent("""\ FROM builder RUN touch foo; \\ touch bar ❤ """) fromline = dfparser.structure[1] assert fromline['instruction'] == 'RUN' dfparser.add_lines_at(fromline, "# ❤ something new", replace=True) assert dfparser.lines == [ "FROM builder\n", "# ❤ something new\n", ]
def test_replace_lines_continuation(self, dfparser): dfparser.content = dedent("""\ FROM builder RUN touch foo; \\ touch bar """) fromline = dfparser.structure[1] assert fromline['instruction'] == 'RUN' dfparser.add_lines_at(fromline, "# something new", replace=True) assert dfparser.lines == [ "FROM builder\n", "# something new\n", ]
def test_add_lines_after_continuation(self, dfparser): dfparser.content = dedent("""\ FROM builder RUN touch foo ❤; \\ touch bar """) fromline = dfparser.structure[1] assert fromline['instruction'] == 'RUN' dfparser.add_lines_at(fromline, "# something new", after=True) assert dfparser.lines == [ "FROM builder\n", "RUN touch foo ❤; \\\n", " touch bar\n", "# something new\n", ]
def test_add_lines_at(self, dfparser, anchor, raises): dfparser.content = dedent("""\ From builder CMD xyz ❤ LABEL a=b c=d CMD xyz ❤ """) if raises: with pytest.raises(raises): dfparser.add_lines_at(anchor, "# something new ❤") return dfparser.add_lines_at(anchor, "# something new ❤") assert "something new ❤" in dfparser.content assert "something new ❤" not in dfparser.lines[1] assert "something new ❤" in dfparser.lines[3] assert "CMD" in dfparser.lines[4]
def test_add_lines_at(self, dfparser, anchor, raises): dfparser.content = dedent("""\ From builder CMD xyz LABEL a=b c=d CMD xyz """) if raises: with pytest.raises(raises): dfparser.add_lines_at(anchor, "# something new") return dfparser.add_lines_at(anchor, "# something new") assert "something new" in dfparser.content assert "something new" not in dfparser.lines[1] assert "something new" in dfparser.lines[3] assert "CMD" in dfparser.lines[4]