Skip to content

Commit bbc630f

Browse files
committed
prevent progress bar artifact & respond to code review
1 parent 28eee4a commit bbc630f

File tree

3 files changed

+30
-38
lines changed

3 files changed

+30
-38
lines changed

codeflash/discovery/discover_unit_tests.py

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -107,25 +107,31 @@ def insert_test(
107107
)
108108
self.connection.commit()
109109

110-
def get_tests_for_file(self, file_path: str, file_hash: str) -> list[FunctionCalledInTest] | None:
110+
def get_function_to_test_map_for_file(
111+
self, file_path: str, file_hash: str
112+
) -> dict[str, set[FunctionCalledInTest]] | None:
111113
cache_key = (file_path, file_hash)
112-
if cache_key in self._memory_cache:
114+
if cache_key in self.memory_cache:
113115
return self.memory_cache[cache_key]
114116

115117
self.cur.execute("SELECT * FROM discovered_tests WHERE file_path = ? AND file_hash = ?", (file_path, file_hash))
116118
rows = self.cur.fetchall()
117119
if not rows:
118120
return None
119121

120-
result = [
121-
FunctionCalledInTest(
122+
function_to_test_map = defaultdict(set)
123+
124+
for row in rows:
125+
qualified_name_with_modules_from_root = row[2]
126+
function_called_in_test = FunctionCalledInTest(
122127
tests_in_file=TestsInFile(
123128
test_file=Path(row[0]), test_class=row[4], test_function=row[5], test_type=TestType(int(row[6]))
124129
),
125130
position=CodePosition(line_no=row[7], col_no=row[8]),
126131
)
127-
for row in rows
128-
]
132+
function_to_test_map[qualified_name_with_modules_from_root].add(function_called_in_test)
133+
134+
result = dict(function_to_test_map)
129135
self.memory_cache[cache_key] = result
130136
return result
131137

@@ -552,28 +558,16 @@ def process_test_files(
552558
for test_file, functions in file_to_test_map.items():
553559
file_hash = TestsCache.compute_file_hash(test_file)
554560

555-
cached_tests = tests_cache.get_tests_for_file(str(test_file), file_hash)
556-
557-
if cached_tests:
558-
# Rebuild function_to_test_map from cached data
559-
tests_cache.cur.execute(
560-
"SELECT * FROM discovered_tests WHERE file_path = ? AND file_hash = ?", (str(test_file), file_hash)
561-
)
562-
for row in tests_cache.cur.fetchall():
563-
qualified_name_with_modules_from_root = row[2]
564-
test_type = TestType(int(row[6]))
565-
566-
function_called_in_test = FunctionCalledInTest(
567-
tests_in_file=TestsInFile(
568-
test_file=test_file, test_class=row[4], test_function=row[5], test_type=test_type
569-
),
570-
position=CodePosition(line_no=row[7], col_no=row[8]),
571-
)
572-
573-
function_to_test_map[qualified_name_with_modules_from_root].add(function_called_in_test)
574-
if test_type == TestType.REPLAY_TEST:
575-
num_discovered_replay_tests += 1
576-
num_discovered_tests += 1
561+
cached_function_to_test_map = tests_cache.get_function_to_test_map_for_file(str(test_file), file_hash)
562+
563+
if cached_function_to_test_map:
564+
for qualified_name, test_set in cached_function_to_test_map.items():
565+
function_to_test_map[qualified_name].update(test_set)
566+
567+
for function_called_in_test in test_set:
568+
if function_called_in_test.tests_in_file.test_type == TestType.REPLAY_TEST:
569+
num_discovered_replay_tests += 1
570+
num_discovered_tests += 1
577571

578572
progress.advance(task_id)
579573
continue

codeflash/models/models.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,6 @@ class FunctionCalledInTest:
363363
tests_in_file: TestsInFile
364364
position: CodePosition
365365

366-
367366
@dataclass(frozen=True)
368367
class CodePosition:
369368
line_no: int

codeflash/optimization/optimizer.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -238,15 +238,14 @@ def discover_tests(
238238
from codeflash.discovery.discover_unit_tests import discover_unit_tests
239239

240240
console.rule()
241-
with progress_bar("Discovering existing function tests..."):
242-
start_time = time.time()
243-
function_to_tests, num_discovered_tests, num_discovered_replay_tests = discover_unit_tests(
244-
self.test_cfg, file_to_funcs_to_optimize=file_to_funcs_to_optimize
245-
)
246-
console.rule()
247-
logger.info(
248-
f"Discovered {num_discovered_tests} existing unit tests and {num_discovered_replay_tests} replay tests in {(time.time() - start_time):.1f}s at {self.test_cfg.tests_root}"
249-
)
241+
start_time = time.time()
242+
function_to_tests, num_discovered_tests, num_discovered_replay_tests = discover_unit_tests(
243+
self.test_cfg, file_to_funcs_to_optimize=file_to_funcs_to_optimize
244+
)
245+
console.rule()
246+
logger.info(
247+
f"Discovered {num_discovered_tests} existing unit tests and {num_discovered_replay_tests} replay tests in {(time.time() - start_time):.1f}s at {self.test_cfg.tests_root}"
248+
)
250249
console.rule()
251250
ph("cli-optimize-discovered-tests", {"num_tests": num_discovered_tests})
252251
return function_to_tests, num_discovered_tests

0 commit comments

Comments
 (0)