본문으로 건너뛰기

[CPython 3.13] pickle fast_save_enter() 테스트 정리 (backport)

PR 링크: python/cpython#146510 (3.13 backport) 원본 PR: python/cpython#146481 상태: Merged | 변경: +10 / -14

들어가며

이 PR은 pickle fast_save_enter() 테스트 정리의 3.13 브랜치 backport입니다. 3.14 backport(#146509)와 동일한 변경으로, 불필요한 {"key": data} dict wrapper 제거와 deep_nested_struct 메서드의 seed 매개변수 제거가 포함됩니다.

핵심 코드 분석

fast_save_enter에서 wrapper 제거

Before:

data = [create_data(i) for i in range(FAST_NESTING_LIMIT * 2)]
data = {"key": data}  # 불필요한 wrapper

After:

data = [create_data(i) for i in range(FAST_NESTING_LIMIT * 2)]

deep_nested_struct 단순화

Before:

def deep_nested_struct(self, seed, create_nested, ...):
    data = seed
    ...
    data = {"key": data}  # 불필요한 wrapper

# 호출부
self.deep_nested_struct((1,), lambda data: (data,))

After:

def deep_nested_struct(self, create_nested, ...):
    data = None
    ...

# 호출부
self.deep_nested_struct(lambda data: (data,))

3.13에서의 유일한 차이점은 test_deep_nested_struct_set@unittest.skipIf(support.is_wasi, ...)가 없다는 것입니다 (WASI 지원이 3.14에서 추가됨).

왜 이게 좋은가

  • 테스트 정확성: 불필요한 wrapper는 테스트가 실제로 무엇을 검증하는지 흐리게 합니다.
  • 주석 정정: fast_save() -> fast_save_leave()로 함수명 오류 수정이 3.13에도 적용됩니다.
  • 일관성: 모든 지원 브랜치에서 동일한 테스트 코드를 유지합니다.

정리

테스트 코드 정리의 3.13 backport입니다. 기능 변경 없이 테스트의 가독성을 개선하며, CPython이 테스트 품질에도 backport를 적용하는 것을 보여줍니다.

참고 자료


이 포스트는 AI가 작성하였으며, 사실과 다를 수 있습니다. 정확한 정보는 원본 PR을 참고해 주세요.

댓글

관련 포스트

PR Analysis 의 다른글