Commit f94b754a authored by William Hollywood's avatar William Hollywood
Browse files

Update headers, base tests off of test_xz.py

parent bf04ad9a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
#
# diffoscope: in-depth comparison of files, archives, and directories
#
# Copyright © 2025 Will Hollywood <will.d.hollywood@gmail.com>
# Copyright © 2014-2015 Jérémy Bobbio <lunar@debian.org>
# Copyright © 2015-2020, 2024-2025 Chris Lamb <lamby@debian.org>
#
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
+13 −16
Original line number Diff line number Diff line
#
# diffoscope: in-depth comparison of files, archives, and directories
#
# Copyright © 2025 Will Hollywood <will.d.hollywood@gmail.com>
# Copyright © 2015 Jérémy Bobbio <lunar@debian.org>
# Copyright © 2016-2017, 2020, 2024-2025 Chris Lamb <lamby@debian.org>
#
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,24 +20,20 @@
import shutil
import pytest

from diffoscope.config import Config
from diffoscope.comparators.lzma import LzmaFile
from diffoscope.comparators.binary import FilesystemFile
from diffoscope.comparators.missing_file import MissingFile
from diffoscope.comparators.utils.specialize import (
    specialize,
    is_direct_instance,
)

from ..utils.data import load_fixture, get_data
from diffoscope.comparators.utils.specialize import specialize

from ..utils.data import load_fixture, assert_diff
from ..utils.tools import skip_unless_tools_exist
from ..utils.nonexisting import assert_non_existing

lzma1 = load_fixture("test1.lzma")
lzma2 = load_fixture("test2.lzma")


def test_identification(lzma1):
    assert is_direct_instance(lzma1, LzmaFile)
    assert isinstance(lzma1, LzmaFile)


def test_no_differences(lzma1):
@@ -49,11 +46,13 @@ def differences(lzma1, lzma2):
    return lzma1.compare(lzma2).details


@skip_unless_tools_exist("xz")
def test_content_source(differences):
    assert differences[0].source1 == "test1"
    assert differences[0].source2 == "test2"


@skip_unless_tools_exist("xz")
def test_content_source_without_extension(tmpdir, lzma1, lzma2):
    path1 = str(tmpdir.join("test1"))
    path2 = str(tmpdir.join("test2"))
@@ -66,13 +65,11 @@ def test_content_source_without_extension(tmpdir, lzma1, lzma2):
    assert difference[0].source2 == "test2-content"


@skip_unless_tools_exist("xz")
def test_content_diff(differences):
    expected_diff = get_data("text_ascii_expected_diff")
    assert differences[0].unified_diff == expected_diff
    assert_diff(differences[0], "text_ascii_expected_diff")


@skip_unless_tools_exist("xz")
def test_compare_non_existing(monkeypatch, lzma1):
    monkeypatch.setattr(Config(), "new_file", True)
    difference = lzma1.compare(MissingFile("/nonexisting", lzma1))
    assert difference.source2 == "/nonexisting"
    assert difference.details[-1].source2 == "/dev/null"
    assert_non_existing(monkeypatch, lzma1)