Пример #1
0
 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]
Пример #2
0
 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]
Пример #3
0
    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
Пример #4
0
    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
Пример #5
0
    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]
Пример #6
0
    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]
Пример #7
0
    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",
        ]
Пример #8
0
    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",
        ]
Пример #9
0
    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",
        ]
Пример #10
0
    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]
Пример #11
0
    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]