Compare commits

..

4 Commits

Author SHA1 Message Date
Gud Boi 807d4251f6 Toss in some `colorlog` alts to try 2026-02-09 13:55:29 -05:00
Gud Boi 21f05f707f Less newlines in `._rpc` log msg 2026-02-09 13:54:18 -05:00
Gud Boi d801e7a150 Improve `test_log_sys` for new auto-naming logic
Add assertions and comments to better test the reworked
implicit module-name detection in `get_logger()`.

Deats,
- add `assert not tractor.current_actor()` check to verify
  no runtime is active during test.
- import `.log` submod directly for use.
- add masked `breakpoint()` for debugging mod loading.
- add comment about using `ranger` to inspect `testdir` layout
  of auto-generated py pkg + module-files.
- improve comments explaining pkg-root-log creation.
- add TODO for testing `get_logger()` call from pkg
  `__init__.py`
- add comment about first-pkg-level module naming.

(this commit msg was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code
2026-02-09 13:52:22 -05:00
Gud Boi f5c03f3413 Use test-harness `loglevel` in inter-peer suite 2026-02-09 13:50:50 -05:00
4 changed files with 29 additions and 6 deletions

View File

@ -1020,6 +1020,9 @@ def test_peer_spawns_and_cancels_service_subactor(
raise_client_error: str,
reg_addr: tuple[str, int],
raise_sub_spawn_error_after: float|None,
loglevel: str,
# ^XXX, set to 'warning' to see masked-exc warnings
# that may transpire during actor-nursery teardown.
):
# NOTE: this tests for the modden `mod wks open piker` bug
# discovered as part of implementing workspace ctx
@ -1049,6 +1052,7 @@ def test_peer_spawns_and_cancels_service_subactor(
# NOTE: to halt the peer tasks on ctxc, uncomment this.
debug_mode=debug_mode,
registry_addrs=[reg_addr],
loglevel=loglevel,
) as an:
server: Portal = await an.start_actor(
(server_name := 'spawn_server'),

View File

@ -7,7 +7,10 @@ import shutil
import pytest
import tractor
from tractor import _code_load
from tractor import (
_code_load,
log,
)
def test_root_pkg_not_duplicated_in_logger_name():
@ -20,12 +23,15 @@ def test_root_pkg_not_duplicated_in_logger_name():
project_name: str = 'pylib'
pkg_path: str = 'pylib.subpkg.mod'
proj_log = tractor.log.get_logger(
assert not tractor.current_actor(
err_on_no_runtime=False,
)
proj_log = log.get_logger(
pkg_name=project_name,
mk_sublog=False,
)
sublog = tractor.log.get_logger(
sublog = log.get_logger(
pkg_name=project_name,
name=pkg_path,
)
@ -51,6 +57,7 @@ def test_implicit_mod_name_applied_for_child(
mod_code: str = (
f'import tractor\n'
f'\n'
# f'breakpoint()\n' # if you want to trace it all
f'log = tractor.log.get_logger(pkg_name="{proj_name}")\n'
)
@ -78,6 +85,8 @@ def test_implicit_mod_name_applied_for_child(
pkg_subpkg_submod,
)
testdir.chdir()
# NOTE, to introspect the py-file-module-layout use (in .xsh
# syntax): `ranger @str(testdir)`
# XXX NOTE, once the "top level" pkg mod has been
# imported, we can then use `import` syntax to
@ -86,13 +95,20 @@ def test_implicit_mod_name_applied_for_child(
Path(pkg / '__init__.py'),
module_name=proj_name,
)
pkg_root_log = tractor.log.get_logger(
pkg_root_log = log.get_logger(
pkg_name=proj_name,
mk_sublog=False,
)
# the top level pkg-mod, created just now,
# by above API call.
assert pkg_root_log.name == proj_name
assert not pkg_root_log.logger.getChildren()
#
# ^TODO! test this same output but created via a `get_logger()`
# call in the `snakelib.__init__py`!!
# a first-pkg-level module should only
# use
from snakelib import mod
assert mod.log.name == proj_name

View File

@ -897,9 +897,9 @@ async def _invoke(
)
logmeth(
f'{message}\n'
f'{message}'
f'\n'
f'{descr_str}\n'
f'{descr_str}'
)

View File

@ -42,6 +42,9 @@ from types import ModuleType
import warnings
import colorlog # type: ignore
# ?TODO, some other (modern) alt libs?
# import coloredlogs
# import colored_traceback.auto # ?TODO, need better config?
import trio
from ._state import current_actor