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
log_sys_testing
Gud Boi 2026-02-09 13:52:22 -05:00
parent 0b0c83e9da
commit d61e8caab2
1 changed files with 20 additions and 4 deletions

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