From 4a2ca6b2bfeb370caac026da337450f0982bb2c6 Mon Sep 17 00:00:00 2001
From: Nenad Noveljic <18366081+nenadnoveljic@users.noreply.github.com>
Date: Mon, 23 Sep 2024 14:24:21 +0200
Subject: [PATCH] fixed test_deadlock_calls_obfuscator
---
sqlserver/tests/test_deadlocks.py | 78 +++++++++++++++++++++++++++++++
sqlserver/tests/test_unit.py | 1 -
2 files changed, 78 insertions(+), 1 deletion(-)
diff --git a/sqlserver/tests/test_deadlocks.py b/sqlserver/tests/test_deadlocks.py
index f7a0da9a63eff..448f2bac7ab59 100644
--- a/sqlserver/tests/test_deadlocks.py
+++ b/sqlserver/tests/test_deadlocks.py
@@ -9,6 +9,7 @@
import xml.etree.ElementTree as ET
import os
import pytest
+import re
from copy import copy, deepcopy
from datadog_checks.sqlserver import SQLServer
@@ -223,3 +224,80 @@ def test_deadlock_xml_bad_format(deadlocks_collection_instance):
assert result == "process-list element not found. The deadlock XML is in an unexpected format."
else:
assert False, "Should have raised an exception for bad XML format"
+
+
+def test_deadlock_calls_obfuscator(deadlocks_collection_instance):
+ test_xml = """
+
+
+
+
+
+
+
+
+
+
+
+ \nunknown
+ \nunknown
+
+ \nUPDATE [datadog_test-1].dbo.deadlocks SET b = b + 100 WHERE a = 2;
+
+
+
+ \nunknown
+ \nunknown
+
+ \nUPDATE [datadog_test-1].dbo.deadlocks SET b = b + 20 WHERE a = 1;
+
+
+
+
+
+
+ """
+
+ expected_xml_string = (
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ "obfuscated "
+ "obfuscated "
+ " "
+ "obfuscated "
+ " "
+ " "
+ " "
+ "obfuscated "
+ "obfuscated "
+ " "
+ "obfuscated "
+ " "
+ " "
+ " "
+ " "
+ " "
+ ""
+ )
+
+ with patch(
+ 'datadog_checks.sqlserver.deadlocks.Deadlocks.obfuscate_no_except_wrapper', return_value="obfuscated"
+ ):
+ check = SQLServer(CHECK_NAME, {}, [deadlocks_collection_instance])
+ deadlocks_obj = check.deadlocks
+ root = ET.fromstring(test_xml)
+ deadlocks_obj._obfuscate_xml(root)
+ result_string = ET.tostring(root, encoding='unicode')
+ result_string = result_string.replace('\t', '').replace('\n', '')
+ result_string = re.sub(r'\s{2,}', ' ', result_string)
+ assert expected_xml_string == result_string
+
diff --git a/sqlserver/tests/test_unit.py b/sqlserver/tests/test_unit.py
index 813f8a739c293..bca846b6a434c 100644
--- a/sqlserver/tests/test_unit.py
+++ b/sqlserver/tests/test_unit.py
@@ -872,4 +872,3 @@ def test_exception_handling_by_do_for_dbs(instance_docker):
'datadog_checks.sqlserver.utils.is_azure_sql_database', return_value={}
):
schemas._fetch_for_databases()
-