FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
GitPython/test/deprecation/test_types.py at main · gitpython-developers/GitPython · GitHub
gitpython-developers
GitPython
Repository navigation
Code
Issues
6
(6)
Pull requests
2
(2)
Discussions
Actions
Security and quality
41
(41)
Insights
Expand file tree
Breadcrumbs
GitPython
/
test
/
deprecation
/
test_types.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
64 lines (50 loc) · 2.17 KB
Breadcrumbs
GitPython
/
test
/
deprecation
/
test_types.py
Copy path
File metadata and controls
64 lines (50 loc) · 2.17 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# This module is part of GitPython and is released under the
# 3-Clause BSD License: https://opensource.org/license/bsd-3-clause/
"""Tests for dynamic and static characteristics of git.types module attributes."""
from
typing
import
Literal
import
pytest
import
git
.
types
def
test_cannot_access_undefined
()
->
None
:
"""Accessing a bogus attribute in git.types remains a dynamic and static error."""
with
pytest
.
raises
(
AttributeError
):
git
.
types
.
foo
# type: ignore[attr-defined]
def
test_can_access_lit_commit_ish_but_it_is_not_usable
()
->
None
:
"""Lit_commit_ish_can be accessed, but warns and is an invalid type annotation."""
# It would be fine to test attribute access rather than a "from" import. But a
# "from" import is more likely to appear in actual usage, so it is used here.
with
pytest
.
deprecated_call
()
as
ctx
:
from
git
.
types
import
Lit_commit_ish
# As noted in test_toplevel.test_util_alias_import, there may be multiple warnings,
# but all with the same message.
(
message
,)
=
{
str
(
entry
.
message
)
for
entry
in
ctx
}
assert
"Lit_commit_ish is deprecated."
in
message
assert
'Literal["commit", "tag", "blob", "tree"]'
in
message
,
"Has old definition."
assert
'Literal["commit", "tag"]'
in
message
,
"Has new definition."
assert
"GitObjectTypeString"
in
message
,
"Has new type name for old definition."
_
:
Lit_commit_ish
=
"commit"
# It should be as documented (even though deliberately unusable in static checks).
assert
Lit_commit_ish
==
Literal
[
"commit"
,
"tag"
]
def
test_dir
()
->
None
:
"""dir() on git.types includes public names, even ``Lit_commit_ish``.
It also contains private names that we don't test. See test_compat.test_dir.
"""
expected_subset
=
{
"PathLike"
,
"TBD"
,
"AnyGitObject"
,
"Tree_ish"
,
"Commit_ish"
,
"GitObjectTypeString"
,
"Lit_commit_ish"
,
"Lit_config_levels"
,
"ConfigLevels_Tup"
,
"CallableProgress"
,
"assert_never"
,
"Files_TD"
,
"Total_TD"
,
"HSH_TD"
,
"Has_Repo"
,
"Has_id_attribute"
,
}
actual
=
set
(
dir
(
git
.
types
))
assert
expected_subset
<=
actual
Back
|
FazBrowse Home
|
New Git URL