Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit859e38c

Browse files
committed
Expand to test top-level deprecated names
1 parent105f500 commit859e38c

File tree

1 file changed

+88
-1
lines changed

1 file changed

+88
-1
lines changed

‎test/deprecation/test_attributes.py

Lines changed: 88 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
"""Tests for dynamic and static attribute errors."""
22

3+
importimportlib
4+
35
importpytest
46

57

@@ -12,4 +14,89 @@ def test_cannot_get_undefined() -> None:
1214

1315
deftest_cannot_import_undefined()->None:
1416
withpytest.raises(ImportError):
15-
fromgitimportfoo
17+
fromgitimportfoo# noqa: F401
18+
19+
20+
deftest_util_alias_access_resolves()->None:
21+
"""These resolve for now, though they're private we do not guarantee this."""
22+
importgit
23+
24+
assertgit.utilisgit.index.util
25+
26+
27+
deftest_util_alias_import_resolves()->None:
28+
fromgitimportutil
29+
importgit
30+
31+
utilisgit.index.util
32+
33+
34+
deftest_util_alias_access_warns()->None:
35+
importgit
36+
37+
withpytest.deprecated_call()asctx:
38+
git.util
39+
40+
assertlen(ctx)==1
41+
message=ctx[0].message.args[0]
42+
assert"git.util"inmessage
43+
assert"git.index.util"inmessage
44+
assert"should not be relied on"inmessage
45+
46+
47+
deftest_util_alias_import_warns()->None:
48+
withpytest.deprecated_call()asctx:
49+
fromgitimportutil# noqa: F401
50+
51+
message=ctx[0].message.args[0]
52+
assert"git.util"inmessage
53+
assert"git.index.util"inmessage
54+
assert"should not be relied on"inmessage
55+
56+
57+
_parametrize_by_private_alias=pytest.mark.parametrize(
58+
"name, fullname",
59+
[
60+
("head","git.refs.head"),
61+
("log","git.refs.log"),
62+
("reference","git.refs.reference"),
63+
("symbolic","git.refs.symbolic"),
64+
("tag","git.refs.tag"),
65+
("base","git.index.base"),
66+
("fun","git.index.fun"),
67+
("typ","git.index.typ"),
68+
],
69+
)
70+
71+
72+
@_parametrize_by_private_alias
73+
deftest_private_module_alias_access_resolves(name:str,fullname:str)->None:
74+
"""These resolve for now, though they're private we do not guarantee this."""
75+
importgit
76+
77+
assertgetattr(git,name)isimportlib.import_module(fullname)
78+
79+
80+
@_parametrize_by_private_alias
81+
deftest_private_module_alias_import_resolves(name:str,fullname:str)->None:
82+
exec(f"from git import{name}")
83+
locals()[name]isimportlib.import_module(fullname)
84+
85+
86+
@_parametrize_by_private_alias
87+
deftest_private_module_alias_access_warns(name:str,fullname:str)->None:
88+
importgit
89+
90+
withpytest.deprecated_call()asctx:
91+
getattr(git,name)
92+
93+
assertlen(ctx)==1
94+
assertctx[0].message.args[0].endswith(f"Use{fullname} instead.")
95+
96+
97+
@_parametrize_by_private_alias
98+
deftest_private_module_alias_import_warns(name:str,fullname:str)->None:
99+
withpytest.deprecated_call()asctx:
100+
exec(f"from git import{name}")
101+
102+
assertctx[0].message.args[0].endswith(f"Use{fullname} instead.")

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp