oncall-engine/tools/migrators/lib/tests/test_session.py
Joey Orlando e4728ea69f
feat: add opsgenie to migrator script (#5495)
This PR adds support for migrating data from OpsGenie to Grafana IRM.

Closes https://github.com/grafana/irm/issues/1179
2025-04-07 08:47:27 -04:00

54 lines
1.5 KiB
Python

import os
import uuid
from unittest.mock import patch
import pytest
from lib.session import SESSION_FILE, get_or_create_session_id
@pytest.fixture
def cleanup_session_file():
# Clean up before test
if os.path.exists(SESSION_FILE):
os.remove(SESSION_FILE)
yield
# Clean up after test
if os.path.exists(SESSION_FILE):
os.remove(SESSION_FILE)
def test_get_or_create_session_id_creates_new(cleanup_session_file):
# First call should create a new session ID
session_id1 = get_or_create_session_id()
assert session_id1 is not None
assert len(session_id1) > 0
# Verify it's a valid UUID
uuid.UUID(session_id1)
# Second call should return the same ID
session_id2 = get_or_create_session_id()
assert session_id2 == session_id1
# Verify file exists and contains the ID
assert os.path.exists(SESSION_FILE)
with open(SESSION_FILE, "r") as f:
stored_id = f.read().strip()
assert stored_id == session_id1
@patch("uuid.uuid4")
def test_get_or_create_session_id_uses_existing(mock_uuid, cleanup_session_file):
# Create a session file with a known ID
test_id = "12345678-1234-5678-1234-567812345678"
os.makedirs(os.path.dirname(SESSION_FILE), exist_ok=True)
with open(SESSION_FILE, "w") as f:
f.write(test_id)
# Should return existing ID without generating new one
session_id = get_or_create_session_id()
assert session_id == test_id
mock_uuid.assert_not_called()