Skip to content

Commit 488ab8e

Browse files
authored
Bugfix: Fix Failing UT missing credential sanitizer (#376)
Similar Issue and Fix : #374 Its weird because I see failure in one of my PR run : #368 <img width="987" height="352" alt="UTFIx_1" src="https://github.com/user-attachments/assets/74e2aedf-325f-4ec6-beb7-238ff4152de5" /> and the 2nd one looks fine after the same rebase : #359 The addition of credential sanitizer has started exercising new paths which is reducing the coverage from base branch. - I've removed the test that were marked to skip on GitHub because they kept failing according to this PR : #129 . ( No comment was mentioned about putting it back or reasoning either) - Added sleep time 20s and 30s each for update time use-case which was failing on assertion due to time not getting reflected or writes happening before/around the same time. Dont see any failures at the moment with the github tests that were failing earlier.
1 parent 896a58f commit 488ab8e

3 files changed

Lines changed: 8 additions & 17 deletions

File tree

src/extension/tests/Test_ActionHandler.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ def mock_os_getenv(name, value=None):
310310

311311
# Re-init TelemetryWriter since the env var for compatibility is only checked on init
312312
os.getenv = mock_os_getenv
313-
self.runtime.telemetry_writer = TelemetryWriter(self.runtime.logger, self.runtime.env_layer)
313+
self.runtime.telemetry_writer = TelemetryWriter(self.runtime.logger, self.runtime.env_layer, self.runtime.credential_sanitizer)
314314
self.action_handler.telemetry_writer = self.runtime.telemetry_writer
315315

316316
self.assertTrue(self.action_handler.uninstall() == Constants.ExitCode.Okay)
@@ -339,7 +339,7 @@ def mock_os_getenv(name, value=None):
339339

340340
# Re-init TelemetryWriter since the env var for compatibility is only checked on init
341341
os.getenv = mock_os_getenv
342-
self.runtime.telemetry_writer = TelemetryWriter(self.runtime.logger, self.runtime.env_layer)
342+
self.runtime.telemetry_writer = TelemetryWriter(self.runtime.logger, self.runtime.env_layer, self.runtime.credential_sanitizer)
343343
self.action_handler.telemetry_writer = self.runtime.telemetry_writer
344344

345345
self.assertTrue(self.action_handler.uninstall() == Constants.ExitCode.Okay)
@@ -582,7 +582,7 @@ def test_filter_files_from_versions(self):
582582
'/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.6.35'
583583
]
584584

585-
all_versions = self.action_handler.filter_files_from_versions(all_versions_including_files);
585+
all_versions = self.action_handler.filter_files_from_versions(all_versions_including_files)
586586
self.assertTrue(len(all_versions) == 2)
587587
self.assertTrue('/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.6.36' in all_versions)
588588
self.assertTrue('/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.6.35' in all_versions)

src/extension/tests/Test_ExtOutputStatusHandler.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import os
1919
import shutil
2020
import tempfile
21+
import time
2122
import unittest
2223
from extension.src.Constants import Constants
2324
from extension.src.file_handlers.ExtOutputStatusHandler import ExtOutputStatusHandler
@@ -72,9 +73,6 @@ def test_read_file(self):
7273
shutil.rmtree(dir_path)
7374

7475
def test_update_file(self):
75-
if self.runtime.is_github_runner:
76-
return
77-
7876
file_name = "test"
7977
dir_path = tempfile.mkdtemp()
8078
operation = "Assessment"
@@ -84,11 +82,13 @@ def test_update_file(self):
8482
stat_file_name = os.stat(os.path.join(dir_path, file_name + ".status"))
8583
prev_modified_time = stat_file_name.st_mtime
8684

85+
time.sleep(0.02)
8786
ext_status_handler.update_file("test1")
8887
stat_file_name = os.stat(os.path.join(dir_path, file_name + ".status"))
8988
modified_time = stat_file_name.st_mtime
9089
self.assertEqual(prev_modified_time, modified_time)
9190

91+
time.sleep(0.03) # ensure filesystem mtime granularity is exceeded
9292
ext_status_handler.update_file(file_name)
9393
stat_file_name = os.stat(os.path.join(dir_path, file_name + ".status"))
9494
modified_time = stat_file_name.st_mtime

src/extension/tests/Test_TelemetryWriter.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,6 @@ def mock_os_listdir(self, file_path):
3838
return ['testevent1.json', 'testevent2.json', 'testevent3.json', 'testevent4.json']
3939

4040
def test_write_event(self):
41-
if self.runtime.is_github_runner:
42-
return
43-
4441
self.telemetry_writer.write_event("testing telemetry write to file", Constants.TelemetryEventLevel.Error, "Test Task")
4542
with open(os.path.join(self.telemetry_writer.events_folder_path, os.listdir(self.telemetry_writer.events_folder_path)[0]), 'r+') as f:
4643
events = json.load(f)
@@ -64,17 +61,14 @@ def test_write_event(self):
6461
f.close()
6562

6663
def test_write_multiple_events_in_same_file(self):
67-
if self.runtime.is_github_runner:
68-
return
69-
7064
time_backup = time.time
7165
time.time = self.mock_time
7266
self.telemetry_writer.write_event("testing telemetry write to file", Constants.TelemetryEventLevel.Error, "Test Task")
7367
self.telemetry_writer.write_event("testing telemetry write to file", Constants.TelemetryEventLevel.Error, "Test Task2")
7468
with open(os.path.join(self.telemetry_writer.events_folder_path, os.listdir(self.telemetry_writer.events_folder_path)[0]), 'r+') as f:
7569
events = json.load(f)
7670
self.assertTrue(events is not None)
77-
self.assertEqual(len(events), 2) # Fails here on GitHub
71+
self.assertEqual(len(events), 2)
7872
self.assertEqual(events[0]["TaskName"], "Test Task")
7973
self.assertEqual(events[1]["TaskName"], "Test Task2")
8074
f.close()
@@ -115,9 +109,6 @@ def test_write_event_size_limit(self):
115109
# self.telemetry_writer.get_file_size = telemetry_get_event_file_size_backup
116110

117111
def test_delete_older_events(self):
118-
if self.runtime.is_github_runner:
119-
return
120-
121112
# deleting older event files before adding new one
122113
self.telemetry_writer.write_event("testing telemetry write to file", Constants.TelemetryEventLevel.Error, "Test Task")
123114
self.telemetry_writer.write_event("testing telemetry write to file", Constants.TelemetryEventLevel.Error, "Test Task2")
@@ -131,7 +122,7 @@ def test_delete_older_events(self):
131122
self.telemetry_writer.write_event("testing telemetry write to file", Constants.TelemetryEventLevel.Error, "Test Task4")
132123
new_events = os.listdir(self.telemetry_writer.events_folder_path)
133124
self.assertEqual(len(new_events), 1)
134-
self.assertTrue(old_events[0] not in new_events) # Fails here on GitHub
125+
self.assertNotIn(old_events[0], new_events)
135126
Constants.TELEMETRY_DIR_SIZE_LIMIT_IN_CHARS = telemetry_dir_size_backup
136127
Constants.TELEMETRY_EVENT_FILE_SIZE_LIMIT_IN_CHARS = telemetry_event_size_backup
137128

0 commit comments

Comments
 (0)