mirror of
https://github.com/agentscope-ai/ReMe.git
synced 2026-08-28 05:25:04 +00:00
64 lines
1.5 KiB
Python
64 lines
1.5 KiB
Python
"""
|
|
This module provides a suite of tests to verify universal timer decorator functionality using loguru.
|
|
"""
|
|
|
|
import asyncio
|
|
import time
|
|
|
|
from loguru import logger
|
|
|
|
from reme_ai.core_old.utils import timer
|
|
|
|
|
|
@timer
|
|
def test_sync_function(seconds: float) -> str:
|
|
"""Tests timing of a standard synchronous function."""
|
|
time.sleep(seconds)
|
|
return "sync done"
|
|
|
|
|
|
@timer
|
|
async def test_async_function(seconds: float) -> str:
|
|
"""Tests timing of an asynchronous function."""
|
|
await asyncio.sleep(seconds)
|
|
return "async done"
|
|
|
|
|
|
class TestMemberMethods:
|
|
"""Container class to test class method decoration."""
|
|
|
|
@timer
|
|
def test_sync_method(self, seconds: float) -> None:
|
|
"""Tests a synchronous instance method."""
|
|
time.sleep(seconds)
|
|
|
|
@timer
|
|
async def test_async_method(self, seconds: float) -> None:
|
|
"""Tests an asynchronous instance method."""
|
|
await asyncio.sleep(seconds)
|
|
|
|
|
|
def run_all_tests() -> None:
|
|
"""
|
|
Manual test runner.
|
|
Notice that the logs will now point to the line numbers below
|
|
(where the function is actually called).
|
|
"""
|
|
logger.info("Starting tests and verifying stack trace...")
|
|
|
|
# 1. Test Sync Function
|
|
test_sync_function(0.1)
|
|
|
|
# 2. Test Async Function
|
|
asyncio.run(test_async_function(0.1))
|
|
|
|
# 3. Test Class Methods
|
|
tester = TestMemberMethods()
|
|
tester.test_sync_method(0.05)
|
|
asyncio.run(tester.test_async_method(0.05))
|
|
|
|
logger.success("All tests completed.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run_all_tests()
|