Source code for unittests.test_pytest_loganalyzer

#!/usr/bin/env python
# Copyright (c) 2015 - 2017, Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""``test_pytest_loganalyzer.py``

`Unittests for loganalyzer`

"""

import json
import os
import sys
from unittest.mock import patch, MagicMock

import pytest

sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from plugins.pytest_loganalyzer import LogAnalyzer


[docs]class TestLogAnalyzer(object): LOG_WITH_DUPS = """{ "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10b9;b=4931b09af53f45f1b83fe32300ab7609;m=1639692e56;t=5169665e93a6e;x=ed01d0faf5cc1d2c", "__REALTIME_TIMESTAMP" : "1432210094242414", "__MONOTONIC_TIMESTAMP" : "95452474966", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "_TRANSPORT" : "syslog", "SYSLOG_FACILITY" : "10", "SYSLOG_IDENTIFIER" : "sshd", "_COMM" : "sshd", "_EXE" : "/usr/sbin/sshd", "_SELINUX_CONTEXT" : "system_u:system_r:sshd_t:s0-s0:c0.c1023", "_SYSTEMD_OWNER_UID" : "0", "_SYSTEMD_SLICE" : "user-0.slice", "_AUDIT_LOGINUID" : "0", "_HOSTNAME" : "rr24or", "_CMDLINE" : "sshd: root [priv] ", "MESSAGE" : "Removed session 50.", "SYSLOG_PID" : "15433", "_PID" : "15433", "_AUDIT_SESSION" : "50", "_SYSTEMD_CGROUP" : "/user.slice/user-0.slice/session-50.scope", "_SYSTEMD_SESSION" : "50", "_SYSTEMD_UNIT" : "session-50.scope", "_SOURCE_REALTIME_TIMESTAMP" : "1432210094240765" } { "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10ba;b=4931b09af53f45f1b83fe32300ab7609;m=1648a3182f;t=5169675232447;x=b51015aee07e27a2", "__REALTIME_TIMESTAMP" : "1432210349696071", "__MONOTONIC_TIMESTAMP" : "95707928623", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "_TRANSPORT" : "syslog", "SYSLOG_FACILITY" : "10", "SYSLOG_IDENTIFIER" : "sshd", "_COMM" : "sshd", "_EXE" : "/usr/sbin/sshd", "_SELINUX_CONTEXT" : "system_u:system_r:sshd_t:s0-s0:c0.c1023", "_SYSTEMD_OWNER_UID" : "0", "_SYSTEMD_SLICE" : "user-0.slice", "_AUDIT_LOGINUID" : "0", "_HOSTNAME" : "rr24or", "MESSAGE" : "Removed session 50.", "_CMDLINE" : "sshd: root@notty ", "SYSLOG_PID" : "15433", "_PID" : "15433", "_AUDIT_SESSION" : "50", "_SYSTEMD_CGROUP" : "/user.slice/user-0.slice/session-50.scope", "_SYSTEMD_SESSION" : "50", "_SYSTEMD_UNIT" : "session-50.scope", "_SOURCE_REALTIME_TIMESTAMP" : "1432210349692776" } { "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10bb;b=4931b09af53f45f1b83fe32300ab7609;m=1648a3459e;t=51696752351b6;x=8bbc2fb7e2219d64", "__REALTIME_TIMESTAMP" : "1432210349707702", "__MONOTONIC_TIMESTAMP" : "95707940254", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_SYSTEMD_SLICE" : "system.slice", "_TRANSPORT" : "journal", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "SYSLOG_FACILITY" : "4", "SYSLOG_IDENTIFIER" : "systemd-logind", "_COMM" : "systemd-logind", "_EXE" : "/usr/lib/systemd/systemd-logind", "_CMDLINE" : "/usr/lib/systemd/systemd-logind", "_CAP_EFFECTIVE" : "4420002f", "_SYSTEMD_CGROUP" : "/system.slice/systemd-logind.service", "_SYSTEMD_UNIT" : "systemd-logind.service", "_SELINUX_CONTEXT" : "system_u:system_r:systemd_logind_t:s0", "CODE_FILE" : "../src/login/logind-session.c", "USER_ID" : "root", "CODE_LINE" : "660", "CODE_FUNCTION" : "session_finalize", "MESSAGE_ID" : "3354939424b4456d9802ca8333ed424a", "_HOSTNAME" : "rr24or", "_PID" : "429", "SESSION_ID" : "50", "LEADER" : "15433", "MESSAGE" : "Removed session 50.", "_SOURCE_REALTIME_TIMESTAMP" : "1432210349706418" }""" LOG_NO_DUPS = """{ "MESSAGE" : "Removed session 50.", "__REALTIME_TIMESTAMP" : "1432210094242414", "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10b9;b=4931b09af53f45f1b83fe32300ab7609;m=1639692e56;t=5169665e93a6e;x=ed01d0faf5cc1d2c", "__MONOTONIC_TIMESTAMP" : "95452474966", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "_TRANSPORT" : "syslog", "SYSLOG_FACILITY" : "10", "SYSLOG_IDENTIFIER" : "sshd", "_COMM" : "sshd", "_EXE" : "/usr/sbin/sshd", "_SELINUX_CONTEXT" : "system_u:system_r:sshd_t:s0-s0:c0.c1023", "_SYSTEMD_OWNER_UID" : "0", "_SYSTEMD_SLICE" : "user-0.slice", "_AUDIT_LOGINUID" : "0", "_HOSTNAME" : "rr24or", "_CMDLINE" : "sshd: root [priv] ", "SYSLOG_PID" : "15433", "_PID" : "15433", "_AUDIT_SESSION" : "50", "_SYSTEMD_CGROUP" : "/user.slice/user-0.slice/session-50.scope", "_SYSTEMD_SESSION" : "50", "_SYSTEMD_UNIT" : "session-50.scope", "_SOURCE_REALTIME_TIMESTAMP" : "1432210094240765" } { "MESSAGE" : "Removed session 51.", "__REALTIME_TIMESTAMP" : "1432210094242414", "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10b9;b=4931b09af53f45f1b83fe32300ab7609;m=1639692e56;t=5169665e93a6e;x=ed01d0faf5cc1d2c", "__MONOTONIC_TIMESTAMP" : "95452474966", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "_TRANSPORT" : "syslog", "SYSLOG_FACILITY" : "10", "SYSLOG_IDENTIFIER" : "sshd", "_COMM" : "sshd", "_EXE" : "/usr/sbin/sshd", "_SELINUX_CONTEXT" : "system_u:system_r:sshd_t:s0-s0:c0.c1023", "_SYSTEMD_OWNER_UID" : "0", "_SYSTEMD_SLICE" : "user-0.slice", "_AUDIT_LOGINUID" : "0", "_HOSTNAME" : "rr24or", "_CMDLINE" : "sshd: root [priv] ", "SYSLOG_PID" : "15433", "_PID" : "15433", "_AUDIT_SESSION" : "50", "_SYSTEMD_CGROUP" : "/user.slice/user-0.slice/session-50.scope", "_SYSTEMD_SESSION" : "50", "_SYSTEMD_UNIT" : "session-50.scope", "_SOURCE_REALTIME_TIMESTAMP" : "1432210094240765" } { "MESSAGE" : "Removed session 52.", "__REALTIME_TIMESTAMP" : "1432210094242414", "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10b9;b=4931b09af53f45f1b83fe32300ab7609;m=1639692e56;t=5169665e93a6e;x=ed01d0faf5cc1d2c", "__MONOTONIC_TIMESTAMP" : "95452474966", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "_TRANSPORT" : "syslog", "SYSLOG_FACILITY" : "10", "SYSLOG_IDENTIFIER" : "sshd", "_COMM" : "sshd", "_EXE" : "/usr/sbin/sshd", "_SELINUX_CONTEXT" : "system_u:system_r:sshd_t:s0-s0:c0.c1023", "_SYSTEMD_OWNER_UID" : "0", "_SYSTEMD_SLICE" : "user-0.slice", "_AUDIT_LOGINUID" : "0", "_HOSTNAME" : "rr24or", "_CMDLINE" : "sshd: root [priv] ", "SYSLOG_PID" : "15433", "_PID" : "15433", "_AUDIT_SESSION" : "50", "_SYSTEMD_CGROUP" : "/user.slice/user-0.slice/session-50.scope", "_SYSTEMD_SESSION" : "50", "_SYSTEMD_UNIT" : "session-50.scope", "_SOURCE_REALTIME_TIMESTAMP" : "1432210094240765" } { "MESSAGE" : "Removed session 53.", "__REALTIME_TIMESTAMP" : "1432210094242414", "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10b9;b=4931b09af53f45f1b83fe32300ab7609;m=1639692e56;t=5169665e93a6e;x=ed01d0faf5cc1d2c", "__MONOTONIC_TIMESTAMP" : "95452474966", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "_TRANSPORT" : "syslog", "SYSLOG_FACILITY" : "10", "SYSLOG_IDENTIFIER" : "sshd", "_COMM" : "sshd", "_EXE" : "/usr/sbin/sshd", "_SELINUX_CONTEXT" : "system_u:system_r:sshd_t:s0-s0:c0.c1023", "_SYSTEMD_OWNER_UID" : "0", "_SYSTEMD_SLICE" : "user-0.slice", "_AUDIT_LOGINUID" : "0", "_HOSTNAME" : "rr24or", "_CMDLINE" : "sshd: root [priv] ", "SYSLOG_PID" : "15433", "_PID" : "15433", "_AUDIT_SESSION" : "50", "_SYSTEMD_CGROUP" : "/user.slice/user-0.slice/session-50.scope", "_SYSTEMD_SESSION" : "50", "_SYSTEMD_UNIT" : "session-50.scope", "_SOURCE_REALTIME_TIMESTAMP" : "1432210094240765" }""" LOG_WITH_ONE_LINE = """{ "MESSAGE" : "Removed session 50.", "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10b9;b=4931b09af53f45f1b83fe32300ab7609;m=1639692e56;t=5169665e93a6e;x=ed01d0faf5cc1d2c", "__REALTIME_TIMESTAMP" : "1432210094242414", "__MONOTONIC_TIMESTAMP" : "95452474966", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "_TRANSPORT" : "syslog", "SYSLOG_FACILITY" : "10", "SYSLOG_IDENTIFIER" : "sshd", "_COMM" : "sshd", "_EXE" : "/usr/sbin/sshd", "_SELINUX_CONTEXT" : "system_u:system_r:sshd_t:s0-s0:c0.c1023", "_SYSTEMD_OWNER_UID" : "0", "_SYSTEMD_SLICE" : "user-0.slice", "_AUDIT_LOGINUID" : "0", "_HOSTNAME" : "rr24or", "_CMDLINE" : "sshd: root [priv] ", "SYSLOG_PID" : "15433", "_PID" : "15433", "_AUDIT_SESSION" : "50", "_SYSTEMD_CGROUP" : "/user.slice/user-0.slice/session-50.scope", "_SYSTEMD_SESSION" : "50", "_SYSTEMD_UNIT" : "session-50.scope", "_SOURCE_REALTIME_TIMESTAMP" : "1432210094240765" }""" LOG_WITH_DIFF_CASES = """{ "MESSAGE" : "Removed session 50.", "__REALTIME_TIMESTAMP" : "1432210094242414", "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10b9;b=4931b09af53f45f1b83fe32300ab7609;m=1639692e56;t=5169665e93a6e;x=ed01d0faf5cc1d2c", "__MONOTONIC_TIMESTAMP" : "95452474966", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "_TRANSPORT" : "syslog", "SYSLOG_FACILITY" : "10", "SYSLOG_IDENTIFIER" : "sshd", "_COMM" : "sshd", "_EXE" : "/usr/sbin/sshd", "_SELINUX_CONTEXT" : "system_u:system_r:sshd_t:s0-s0:c0.c1023", "_SYSTEMD_OWNER_UID" : "0", "_SYSTEMD_SLICE" : "user-0.slice", "_AUDIT_LOGINUID" : "0", "_HOSTNAME" : "rr24or", "_CMDLINE" : "sshd: root [priv] ", "SYSLOG_PID" : "15433", "_PID" : "15433", "_AUDIT_SESSION" : "50", "_SYSTEMD_CGROUP" : "/user.slice/user-0.slice/session-50.scope", "_SYSTEMD_SESSION" : "50", "_SYSTEMD_UNIT" : "session-50.scope", "_SOURCE_REALTIME_TIMESTAMP" : "1432210094240765" } { "MESSAGE" : "Removed session 51.", "__REALTIME_TIMESTAMP" : "1432210094242414", "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10b9;b=4931b09af53f45f1b83fe32300ab7609;m=1639692e56;t=5169665e93a6e;x=ed01d0faf5cc1d2c", "__MONOTONIC_TIMESTAMP" : "95452474966", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "_TRANSPORT" : "syslog", "SYSLOG_FACILITY" : "10", "SYSLOG_IDENTIFIER" : "sshd", "_COMM" : "sshd", "_EXE" : "/usr/sbin/sshd", "_SELINUX_CONTEXT" : "system_u:system_r:sshd_t:s0-s0:c0.c1023", "_SYSTEMD_OWNER_UID" : "0", "_SYSTEMD_SLICE" : "user-0.slice", "_AUDIT_LOGINUID" : "0", "_HOSTNAME" : "rr24or", "_CMDLINE" : "sshd: root [priv] ", "SYSLOG_PID" : "15433", "_PID" : "15433", "_AUDIT_SESSION" : "50", "_SYSTEMD_CGROUP" : "/user.slice/user-0.slice/session-50.scope", "_SYSTEMD_SESSION" : "50", "_SYSTEMD_UNIT" : "session-50.scope", "_SOURCE_REALTIME_TIMESTAMP" : "1432210094240765" } { "MESSAGE" : " Removed session 52. ", "__REALTIME_TIMESTAMP" : "1432210094242414", "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10b9;b=4931b09af53f45f1b83fe32300ab7609;m=1639692e56;t=5169665e93a6e;x=ed01d0faf5cc1d2c", "__MONOTONIC_TIMESTAMP" : "95452474966", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "_TRANSPORT" : "syslog", "SYSLOG_FACILITY" : "10", "SYSLOG_IDENTIFIER" : "sshd", "_COMM" : "sshd", "_EXE" : "/usr/sbin/sshd", "_SELINUX_CONTEXT" : "system_u:system_r:sshd_t:s0-s0:c0.c1023", "_SYSTEMD_OWNER_UID" : "0", "_SYSTEMD_SLICE" : "user-0.slice", "_AUDIT_LOGINUID" : "0", "_HOSTNAME" : "rr24or", "_CMDLINE" : "sshd: root [priv] ", "SYSLOG_PID" : "15433", "_PID" : "15433", "_AUDIT_SESSION" : "50", "_SYSTEMD_CGROUP" : "/user.slice/user-0.slice/session-50.scope", "_SYSTEMD_SESSION" : "50", "_SYSTEMD_UNIT" : "session-50.scope", "_SOURCE_REALTIME_TIMESTAMP" : "1432210094240765" } { "MESSAGE" : "removed session 52.", "__REALTIME_TIMESTAMP" : "1432210094242414", "__CURSOR" : "s=a16de58e54a64618a703efd350407e90;i=10b9;b=4931b09af53f45f1b83fe32300ab7609;m=1639692e56;t=5169665e93a6e;x=ed01d0faf5cc1d2c", "__MONOTONIC_TIMESTAMP" : "95452474966", "_BOOT_ID" : "4931b09af53f45f1b83fe32300ab7609", "PRIORITY" : "6", "_UID" : "0", "_GID" : "0", "_CAP_EFFECTIVE" : "3fffffffff", "_MACHINE_ID" : "e784f69e5d1747ebb7f6e829df0b0a0b", "_TRANSPORT" : "syslog", "SYSLOG_FACILITY" : "10", "SYSLOG_IDENTIFIER" : "sshd", "_COMM" : "sshd", "_EXE" : "/usr/sbin/sshd", "_SELINUX_CONTEXT" : "system_u:system_r:sshd_t:s0-s0:c0.c1023", "_SYSTEMD_OWNER_UID" : "0", "_SYSTEMD_SLICE" : "user-0.slice", "_AUDIT_LOGINUID" : "0", "_HOSTNAME" : "rr24or", "_CMDLINE" : "sshd: root [priv] ", "SYSLOG_PID" : "15433", "_PID" : "15433", "_AUDIT_SESSION" : "50", "_SYSTEMD_CGROUP" : "/user.slice/user-0.slice/session-50.scope", "_SYSTEMD_SESSION" : "50", "_SYSTEMD_UNIT" : "session-50.scope", "_SOURCE_REALTIME_TIMESTAMP" : "1432210094240765" }""" LOG_UNICODE_WITH_DUP = """\ { "__CURSOR" : "s=da7709dd847c44dfab1720741ac0cb4d;i=987;b=614a99edf174450881448555522144d8;m=831cd2;t=5179273d9ed40;x=e2f17e57f07304e2", "__REALTIME_TIMESTAMP" : "1433292659879232", "__MONOTONIC_TIMESTAMP" : "8592594", "_BOOT_ID" : "614a99edf174450881448555522144d8", "PRIORITY" : "6", "_TRANSPORT" : "driver", "MESSAGE" : "Runtime journal is using 8.0M (max allowed 399.0M, trying to leave 598.5M free of 3.8G available \uffffffe2\uffffff86\uffffff92 current limit 399.0M).", "MESSAGE_ID" : "ec387f577b844b8fa948f33cad9a75e6", "_PID" : "338", "_UID" : "0", "_GID" : "0", "_COMM" : "systemd-journal", "_EXE" : "/usr/lib/systemd/systemd-journald", "_CMDLINE" : "/usr/lib/systemd/systemd-journald", "_CAP_EFFECTIVE" : "4402800cf", "_SYSTEMD_CGROUP" : "/system.slice/systemd-journald.service", "_SYSTEMD_UNIT" : "systemd-journald.service", "_SYSTEMD_SLICE" : "system.slice", "_SELINUX_CONTEXT" : "system_u:system_r:syslogd_t:s0", "_MACHINE_ID" : "da7c5b98bff3487ab53fcda4b679bc88", "_HOSTNAME" : "rr12or" } { "__CURSOR" : "s=da7709dd847c44dfab1720741ac0cb4d;i=988;b=614a99edf174450881448555522144d8;m=831fee;t=5179273d9f05c;x=e2f17e57f07304e2", "__REALTIME_TIMESTAMP" : "1433292659880028", "__MONOTONIC_TIMESTAMP" : "8593390", "_BOOT_ID" : "614a99edf174450881448555522144d8", "PRIORITY" : "6", "_TRANSPORT" : "driver", "MESSAGE" : "Runtime journal is using 8.0M (max allowed 399.0M, trying to leave 598.5M free of 3.8G available \uffffffe2\uffffff86\uffffff92 current limit 399.0M).", "MESSAGE_ID" : "ec387f577b844b8fa948f33cad9a75e6", "_PID" : "338", "_UID" : "0", "_GID" : "0", "_COMM" : "systemd-journal", "_EXE" : "/usr/lib/systemd/systemd-journald", "_CMDLINE" : "/usr/lib/systemd/systemd-journald", "_CAP_EFFECTIVE" : "4402800cf", "_SYSTEMD_CGROUP" : "/system.slice/systemd-journald.service", "_SYSTEMD_UNIT" : "systemd-journald.service", "_SYSTEMD_SLICE" : "system.slice", "_SELINUX_CONTEXT" : "system_u:system_r:syslogd_t:s0", "_MACHINE_ID" : "da7c5b98bff3487ab53fcda4b679bc88", "_HOSTNAME" : "rr12or" } """ log_analyzer = LogAnalyzer(None)
[docs] def test_check_log_duplicates_raises_assertion_error(self): with pytest.raises(AssertionError) as excinfo: self.log_analyzer._check_log_duplicates(self.LOG_WITH_DUPS) assert "Log duplication found" in str(excinfo.value)
[docs] def test_check_log_duplicates_no_dups(self): assert self.log_analyzer._check_log_duplicates(self.LOG_NO_DUPS) is None
[docs] def test_check_log_duplicate_one_line(self): assert self.log_analyzer._check_log_duplicates(self.LOG_WITH_ONE_LINE) is None
[docs] def test_check_log_duplicates_non_exact_duplicates_are_ignored(self): # the journalctl messages are exact since the logs are binary and don't require parsing # so we should not strip whitespace or convert case self.log_analyzer._check_log_duplicates(self.LOG_WITH_DIFF_CASES)
[docs] def test_check_log_duplicates_handles_unicode(self): with patch.object(self.log_analyzer, "ignore", MagicMock(return_value=False)): with pytest.raises(AssertionError) as excinfo: self.log_analyzer._check_log_duplicates(self.LOG_UNICODE_WITH_DUP) assert "Log duplication found" in str(excinfo.value)
[docs] def test_ignore_finds_regexps(self): entry = json.loads(self.LOG_UNICODE_WITH_DUP.splitlines()[0]) assert self.log_analyzer.ignore(entry)