Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/clusterfuzz/_internal/base/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import random
import re
import sys
import tempfile
import time
import urllib.parse
import urllib.request
Expand Down Expand Up @@ -1100,3 +1101,10 @@ def batched(iterator, batch_size):

if batch:
yield batch


def create_temp_file(directory: str, prefix: str, suffix: str) -> str:
"""Creates a temporary file and returns its path."""
fd, file_path = tempfile.mkstemp(dir=directory, prefix=prefix, suffix=suffix)
os.close(fd)
return file_path
13 changes: 13 additions & 0 deletions src/clusterfuzz/_internal/tests/core/base/utils_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -720,3 +720,16 @@ def test_additional_prefix(self):
"""Test parsing manifest data with an added prefix."""
file_data = 'prefix123-20250402153042-utc-40773ac0-username_test123-cad6977-prod'
self.assertIsNone(utils.parse_manifest_data(file_data))


class CreateTempFileTest(unittest.TestCase):
"""Tests for create_temp_file."""

def test_create_temp_file(self):
"""Test create_temp_file creates a file and returns its path."""
with tempfile.TemporaryDirectory() as tmpdir:
file_path = utils.create_temp_file(tmpdir, 'prefix_', '_suffix')
self.assertTrue(os.path.exists(file_path))
self.assertTrue(file_path.startswith(tmpdir))
self.assertIn('prefix_', file_path)
self.assertTrue(file_path.endswith('_suffix'))
Loading