コード例 #1
0
ファイル: test_diff.py プロジェクト: zzzeid/review
def test_set_as_binary():
    change = Diff.Change("x")
    change.set_as_binary(
        a_body=b"a",
        a_mime="pdf/",
        b_body=b"b",
        b_mime="pdf/",
    )
    assert change.binary
    assert change.uploads == [
        {"type": "old", "value": b"a", "mime": "pdf/", "phid": None},
        {"type": "new", "value": b"b", "mime": "pdf/", "phid": None},
    ]
    assert change.file_type.name == "BINARY"

    change = Diff.Change("x")
    change.set_as_binary(
        a_body=b"a",
        a_mime="image/jpeg",
        b_body=b"b",
        b_mime="pdf/",
    )
    assert change.file_type.name == "IMAGE"

    change = Diff.Change("x")
    change.set_as_binary(
        a_body=b"a",
        a_mime="image/jpeg",
        b_body=b"b",
        b_mime="pdf/",
    )
    assert change.file_type.name == "IMAGE"
コード例 #2
0
ファイル: test_hg.py プロジェクト: mozilla-conduit/review
def test_change_del(m_set_as_binary, m_get_file_meta, hg):
    change = Diff.Change("x")
    m_get_file_meta.return_value = dict(
        binary=False,
        bin_body=b"abc\n",
        body="abc\n",
        file_size=123,
    )
    hg._change_del(change, "fn", None, "parent", "node")
    assert len(change.hunks) == 1
    assert_attributes(
        change.hunks[0],
        dict(
            corpus="-abc\n",
            old_off=1,
            new_off=0,
            old_len=1,
            new_len=0,
        ),
    )
    m_set_as_binary.assert_not_called()

    # binary
    change = Diff.Change("x")
    m_set_as_binary.reset_mock()
    m_get_file_meta.return_value = dict(
        binary=True,
        bin_body=b"abc\n",
        body="abc\n",
        file_size=123,
        mime="MIME",
    )
    hg._change_del(change, "fn", None, "parent", "node")
    assert not change.hunks
    m_set_as_binary.assert_called_once_with(
        a_body=b"abc\n",
        a_mime="MIME",
        b_body="",
        b_mime="",
    )

    # empty
    change = Diff.Change("x")
    m_set_as_binary.reset_mock()
    m_get_file_meta.return_value = dict(
        binary=False,
        bin_body=b"",
        body="",
        file_size=0,
    )
    hg._change_del(change, "fn", None, "parent", "node")
    assert not change.hunks
    m_set_as_binary.assert_not_called()
コード例 #3
0
def test_multiple_hunks():
    git_diff = textwrap.dedent("""
        diff --git a/fn b/fn
        --- a/fn
        +++ b/fn
        @@ -4,3 +4,2 @@ c
        d
        -e
        f
        @@ -11,3 +10,2 @@ j
        k
        -l
        m
        @@ -25,2 +21,1 @@ x
        y
        -z
        """)

    change = Diff.Change("x")
    change.from_git_diff(git_diff)

    assert len(change.hunks) == 3
    assert_attributes(
        change.hunks[0],
        dict(
            old_off=4,
            old_len=3,
            new_off=4,
            new_len=2,
            old_eof_newline=True,
            new_eof_newline=True,
            added=0,
            deleted=1,
            corpus="d\n-e\nf\n",
        ),
    )
    assert_attributes(
        change.hunks[1],
        dict(
            old_off=11,
            old_len=3,
            new_off=10,
            new_len=2,
            old_eof_newline=True,
            new_eof_newline=True,
            added=0,
            deleted=1,
            corpus="k\n-l\nm\n",
        ),
    )
    assert_attributes(
        change.hunks[2],
        dict(
            old_off=25,
            old_len=2,
            new_off=21,
            new_len=1,
            old_eof_newline=True,
            new_eof_newline=True,
            added=0,
            deleted=1,
            corpus="y\n-z\n",
        ),
    )