from django.test import TestCase

# 从项目工具模块导入所有工具函数和类，用于测试
from ..djangoblog.utils import *

#wwc
class DjangoBlogTest(TestCase):
    """
    DjangoBlog 应用的测试用例基类（目前仅包含工具函数测试）。
    继承自 Django 的 TestCase，提供数据库支持、断言方法和测试生命周期管理。
    """

    def setUp(self):
        """
        测试前置准备方法，在每个测试方法执行前自动调用。

        当前为空实现，表示该测试类无需在每次测试前进行初始化操作。
        若后续需要创建测试数据（如用户、文章等），可在此方法中完成。
        """
        pass
#wwc
    def test_utils(self):
        """
        测试工具模块（djangoblog.utils）中的核心功能：
        1. SHA256 哈希生成
        2. Markdown 内容解析与渲染

        此方法验证工具函数是否能正确处理输入并返回预期结果。
        """

        # 测试 get_sha256 函数：计算字符串 'test' 的 SHA256 哈希值
        md5 = get_sha256('test')  # 注意：函数名为 get_sha256，但变量名误写为 md5（应为 sha256）

        # 断言：验证哈希值不为 None，确保函数成功返回了有效结果
        self.assertIsNotNone(md5)

        # 测试 CommonMarkdown.get_markdown 静态方法：将 Markdown 字符串转换为 HTML
        # 输入包含多种 Markdown 元素的文本：
        # - 一级标题 (# Title1)
        # - Python 代码块 (```python ... ```)
        # - 两个超链接 ([text](url))
        c = CommonMarkdown.get_markdown('''
        # Title1

        ```python
        import os
        ```

        [url](https://www.lylinux.net/)

        [ddd](http://www.baidu.com)
        ''')

        # 注意：此测试方法未对返回的 HTML 内容进行断言验证（如 self.assertIn('<h1>', c)），
        # 仅执行了转换操作，未检查输出是否符合预期。建议补充相关断言以增强测试完整性。