开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (11)
标签 (29)
master
fix-binaryformatter-usage
compare-maybetype-by-name
python3.13
noncopyableanalyzer
null-check-before-bind
python-3.13
linting-and-formatting
gitpod
backports-2.5
improve-ci
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0-r1
v3.0.0
v3.0.0-rc6
v3.0.0-rc5
v3.0.0-rc4
v3.0.0-rc3
v3.0.0-rc2
v3.0.0-rc1
v3.0.0-a2
v3.0.0-a1
v2.5.2
v2.5.1
v2.5.0
v2.5.0-rc1
v2.4.0
v2.4.0-rc2
master
分支 (11)
标签 (29)
master
fix-binaryformatter-usage
compare-maybetype-by-name
python3.13
noncopyableanalyzer
null-check-before-bind
python-3.13
linting-and-formatting
gitpod
backports-2.5
improve-ci
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0-r1
v3.0.0
v3.0.0-rc6
v3.0.0-rc5
v3.0.0-rc4
v3.0.0-rc3
v3.0.0-rc2
v3.0.0-rc1
v3.0.0-a2
v3.0.0-a1
v2.5.2
v2.5.1
v2.5.0
v2.5.0-rc1
v2.4.0
v2.4.0-rc2
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (11)
标签 (29)
master
fix-binaryformatter-usage
compare-maybetype-by-name
python3.13
noncopyableanalyzer
null-check-before-bind
python-3.13
linting-and-formatting
gitpod
backports-2.5
improve-ci
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0-r1
v3.0.0
v3.0.0-rc6
v3.0.0-rc5
v3.0.0-rc4
v3.0.0-rc3
v3.0.0-rc2
v3.0.0-rc1
v3.0.0-a2
v3.0.0-a1
v2.5.2
v2.5.1
v2.5.0
v2.5.0-rc1
v2.4.0
v2.4.0-rc2
pythonnet
/
tests
/
test_enum.py
pythonnet
/
tests
/
test_enum.py
test_enum.py 4.57 KB
一键复制 编辑 原始数据 按行查看 历史
Mohamed Koubaa 提交于 2023年09月23日 04:19 +08:00 . custom repr for enum values (#2239)
# -*- coding: utf-8 -*-
"""Test clr enum support."""
import pytest
import Python.Test as Test
from .utils import DictProxyType
def test_enum_standard_attrs():
"""Test standard enum attributes."""
from System import DayOfWeek
assert DayOfWeek.__name__ == 'DayOfWeek'
assert DayOfWeek.__module__ == 'System'
assert isinstance(DayOfWeek.__dict__, DictProxyType)
def test_enum_get_member():
"""Test access to enum members."""
from System import DayOfWeek
assert DayOfWeek.Sunday == DayOfWeek(0)
assert DayOfWeek.Monday == DayOfWeek(1)
assert DayOfWeek.Tuesday == DayOfWeek(2)
assert DayOfWeek.Wednesday == DayOfWeek(3)
assert DayOfWeek.Thursday == DayOfWeek(4)
assert DayOfWeek.Friday == DayOfWeek(5)
assert DayOfWeek.Saturday == DayOfWeek(6)
def test_byte_enum():
"""Test byte enum."""
assert Test.ByteEnum.Zero == Test.ByteEnum(0)
assert Test.ByteEnum.One == Test.ByteEnum(1)
assert Test.ByteEnum.Two == Test.ByteEnum(2)
def test_sbyte_enum():
"""Test sbyte enum."""
assert Test.SByteEnum.Zero == Test.SByteEnum(0)
assert Test.SByteEnum.One == Test.SByteEnum(1)
assert Test.SByteEnum.Two == Test.SByteEnum(2)
def test_short_enum():
"""Test short enum."""
assert Test.ShortEnum.Zero == Test.ShortEnum(0)
assert Test.ShortEnum.One == Test.ShortEnum(1)
assert Test.ShortEnum.Two == Test.ShortEnum(2)
def test_ushort_enum():
"""Test ushort enum."""
assert Test.UShortEnum.Zero == Test.UShortEnum(0)
assert Test.UShortEnum.One == Test.UShortEnum(1)
assert Test.UShortEnum.Two == Test.UShortEnum(2)
def test_int_enum():
"""Test int enum."""
assert Test.IntEnum.Zero == Test.IntEnum(0)
assert Test.IntEnum.One == Test.IntEnum(1)
assert Test.IntEnum.Two == Test.IntEnum(2)
def test_uint_enum():
"""Test uint enum."""
assert Test.UIntEnum.Zero == Test.UIntEnum(0)
assert Test.UIntEnum.One == Test.UIntEnum(1)
assert Test.UIntEnum.Two == Test.UIntEnum(2)
def test_long_enum():
"""Test long enum."""
assert Test.LongEnum.Zero == Test.LongEnum(0)
assert Test.LongEnum.One == Test.LongEnum(1)
assert Test.LongEnum.Two == Test.LongEnum(2)
def test_ulong_enum():
"""Test ulong enum."""
assert Test.ULongEnum.Zero == Test.ULongEnum(0)
assert Test.ULongEnum.One == Test.ULongEnum(1)
assert Test.ULongEnum.Two == Test.ULongEnum(2)
def test_simple_enum_to_int():
from System import DayOfWeek
assert int(DayOfWeek.Sunday) == 0
def test_long_enum_to_int():
assert int(Test.LongEnum.Max) == 9223372036854775807
assert int(Test.LongEnum.Min) == -9223372036854775808
def test_ulong_enum_to_int():
assert int(Test.ULongEnum.Max) == 18446744073709551615
def test_instantiate_enum_fails():
"""Test that instantiation of an enum class fails."""
from System import DayOfWeek
with pytest.raises(TypeError):
_ = DayOfWeek()
def test_subclass_enum_fails():
"""Test that subclassing of an enumeration fails."""
from System import DayOfWeek
with pytest.raises(TypeError):
class Boom(DayOfWeek):
pass
_ = Boom
def test_enum_set_member_fails():
"""Test that setattr operations on enumerations fail."""
from System import DayOfWeek
with pytest.raises(TypeError):
DayOfWeek.Sunday = 13
with pytest.raises(TypeError):
del DayOfWeek.Sunday
def test_enum_undefined_value():
"""Test enumeration conversion with FlagsAttribute set."""
# This works because the FlagsField enum has FlagsAttribute.
Test.FieldTest().FlagsField = Test.FlagsEnum(99)
# This should fail because our test enum doesn't have it.
with pytest.raises(ValueError):
Test.FieldTest().EnumField = Test.ShortEnum(20)
# explicitly permit undefined values
Test.FieldTest().EnumField = Test.ShortEnum(20, True)
def test_enum_repr():
"""Test enumeration repr."""
from System import DayOfWeek
assert repr(DayOfWeek.Monday) == "<DayOfWeek.Monday: 1>"
assert repr(Test.FlagsEnum(7)) == "<FlagsEnum.Two, Five: 0x00000007>"
assert repr(Test.FlagsEnum(8)) == "<FlagsEnum.8: 0x00000008>"
def test_enum_conversion():
"""Test enumeration conversion."""
ob = Test.FieldTest()
assert ob.EnumField == Test.ShortEnum(0)
ob.EnumField = Test.ShortEnum.One
assert ob.EnumField == Test.ShortEnum(1)
with pytest.raises(OverflowError):
Test.FieldTest().EnumField = Test.ShortEnum(100000)
with pytest.raises(TypeError):
Test.FieldTest().EnumField = "str"
with pytest.raises(TypeError):
Test.FieldTest().EnumField = 1
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/MicroDistanceStudio/pythonnet.git
git@gitee.com:MicroDistanceStudio/pythonnet.git
MicroDistanceStudio
pythonnet
pythonnet
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /