Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

test_has_names fails on info category checked main namespace, instead of class attributes

未关闭
#261 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
1/5
预计耗时
1-3 小时
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
停滞
技术栈
python
领域
testing

调研方向

从 array_api_tests/test_has_names.py 开始,检查 info 类别的 test_has_names 处理。使用 array_namespace_info() 作为要检查的对象,运行失败的参数化测试用例。当 Info 对象上的五个 info 名称都通过验证且测试套件通过时,即表示完成。

由索引模型根据 Issue 内容生成。

描述

__________________________________________________________________________________________ test_has_names[info-dtypes] __________________________________________________________________________________________

category = 'info', name = 'dtypes'

    @pytest.mark.parametrize("category, name", has_name_params)
    def test_has_names(category, name):
        if category in EXTENSIONS:
            ext_mod = getattr(xp, category)
            assert hasattr(ext_mod, name), f"{xp.__name__} is missing the {category} extension function {name}()"
        elif category.startswith('array_'):
            # TODO: This would fail if ones() is missing.
            arr = xp.ones((1, 1))
            if category == 'array_attribute':
                assert hasattr(arr, name), f"The {xp.__name__} array object is missing the attribute {name}"
            else:
                assert hasattr(arr, name), f"The {xp.__name__} array object is missing the method {name}()"
        else:
>           assert hasattr(xp, name), f"{xp.__name__} is missing the {category} function {name}()"
E           AssertionError: dpctl.tensor is missing the info function dtypes()
E           assert False
E            +  where False = hasattr(xp, 'dtypes')

array_api_tests/test_has_names.py:37: AssertionError
============================================================================================ short test summary info ============================================================================================
FAILED array_api_tests/test_has_names.py::test_has_names[info-capabilities] - AssertionError: dpctl.tensor is missing the info function capabilities()
FAILED array_api_tests/test_has_names.py::test_has_names[info-default_device] - AssertionError: dpctl.tensor is missing the info function default_device()
FAILED array_api_tests/test_has_names.py::test_has_names[info-default_dtypes] - AssertionError: dpctl.tensor is missing the info function default_dtypes()
FAILED array_api_tests/test_has_names.py::test_has_names[info-devices] - AssertionError: dpctl.tensor is missing the info function devices()
FAILED array_api_tests/test_has_names.py::test_has_names[info-dtypes] - AssertionError: dpctl.tensor is missing the info function dtypes()
========================================================================================= 5 failed, 192 passed in 0.42s =========================================================================================

The specification states that these must be attributes of Info class, not of the main namespace:


In [1]: import dpctl, dpctl.tensor as dpt

In [2]: info = dpt.__array_namespace_info__()

In [3]: hasattr(info, "capabilities")
Out[3]: True

In [4]: hasattr(info, "default_device")
Out[4]: True

In [5]: hasattr(info, "default_dtypes")
Out[5]: True

In [6]: hasattr(info, "devides")
Out[6]: False

In [7]: hasattr(info, "devices")
Out[7]: True

In [8]: hasattr(info,"dtypes")
Out[8]: True
主要语言
Python
星标
74
派生
54
平均合并
4 小时 35 分钟
30 天内合并 PR
4

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

data-apis/array-api-tests 的其他 Issue

查看 data-apis/array-api-tests 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。