# AssertionError: assert datetime.datetime(2024, 1, 1, 0, 0) == datetime.datetime(2025, 6, 1, 12, 0)
# freezegun 已激活，但导入的 datetime 是真实的那一个

- **ID:** `python/pytest-freezegun-datetime-import`
- **领域:** python
- **类别:** runtime_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

被测代码在 freezegun patch 模块之前以 'from datetime import datetime' 方式导入了 datetime，导致测试持有未打补丁的类引用。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 1.5.x | active | — | — |

## 解决方案

1. **** (94% 成功率)
   ```
   # BAD:  from datetime import datetime
# GOOD: import datetime
then use datetime.datetime.now()

# Test:
from freezegun import freeze_time

@freeze_time('2025-06-01 12:00:00')
def test_x():
    assert get_now() == datetime.datetime(2025, 6, 1, 12, 0)
   ```
2. **** (80% 成功率)
   ```
   import importlib

@freeze_time('2025-06-01')
def test_x():
    import myapp.clock
    importlib.reload(myapp.clock)
    assert myapp.clock.now().year == 2025
   ```

## 无效尝试

- **** — tick only affects the patched clock; the unpatched datetime reference is unaffected and still returns real time. (85% 失败率)
- **** — Timezone is not the issue; the datetime class itself is not the one freezegun patched. (92% 失败率)
