Skip to content

Commit e06a6f5

Browse files
committed
fix tests
1 parent 62c202f commit e06a6f5

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

sentience/cloud_tracing.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,13 @@ def close(
149149
# Close file first
150150
self._trace_file.close()
151151

152+
# Ensure file exists and has content before proceeding
153+
if not self._path.exists() or self._path.stat().st_size == 0:
154+
# No events were emitted, nothing to upload
155+
if self.logger:
156+
self.logger.warning("No trace events to upload (file is empty or missing)")
157+
return
158+
152159
# Generate index after closing file
153160
self._generate_index()
154161

tests/test_cloud_tracing.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,12 @@ def test_cloud_trace_sink_emit_after_close_raises(self):
104104
"""Test CloudTraceSink raises error when emitting after close."""
105105
upload_url = "https://test.com/upload"
106106
sink = CloudTraceSink(upload_url, run_id="test-run-789")
107+
# Emit at least one event so file exists
108+
sink.emit({"v": 1, "type": "test", "seq": 1})
107109
sink.close()
108110

109111
with pytest.raises(RuntimeError, match="CloudTraceSink is closed"):
110-
sink.emit({"v": 1, "type": "test", "seq": 1})
112+
sink.emit({"v": 1, "type": "test", "seq": 2})
111113

112114
def test_cloud_trace_sink_context_manager(self):
113115
"""Test CloudTraceSink works as context manager."""
@@ -408,7 +410,9 @@ def test_create_tracer_pro_tier_success(self, capsys):
408410

409411
# Verify tracer works
410412
assert tracer.run_id == "test-run"
411-
assert isinstance(tracer.sink, CloudTraceSink)
413+
# Check if sink is CloudTraceSink (it should be)
414+
from sentience.cloud_tracing import CloudTraceSink
415+
assert isinstance(tracer.sink, CloudTraceSink), f"Expected CloudTraceSink, got {type(tracer.sink)}"
412416
assert tracer.sink.run_id == "test-run" # Verify run_id is passed
413417

414418
# Cleanup

tests/test_trace_file_manager_extract_stats.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@ def test_extract_stats_empty_events():
2121

2222
def test_extract_stats_with_run_start_and_end():
2323
"""Test extract_stats calculates duration from run_start and run_end."""
24+
from datetime import timedelta
25+
2426
start_time = datetime.now(timezone.utc)
25-
end_time = datetime.now(timezone.utc)
26-
# Make end_time 5 seconds later
27-
end_time = end_time.replace(second=end_time.second + 5)
27+
# Make end_time 5 seconds later using timedelta
28+
end_time = start_time + timedelta(seconds=5)
2829

2930
events = [
3031
{

0 commit comments

Comments
 (0)