Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
pybind11_abseil
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open
pybind11_abseil
Commits
87c41a4e
Commit
87c41a4e
authored
Feb 09, 2023
by
Xiaofei Wang
Committed by
Copybara-Service
Feb 09, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make the absl::Status type caster convert Python None to OkStatus.
PiperOrigin-RevId: 508428006
parent
43b546dc
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
1 deletions
+11
-1
pybind11_abseil/status_caster.h
+5
-0
pybind11_abseil/tests/status_example_test.py
+6
-1
No files found.
pybind11_abseil/status_caster.h
View file @
87c41a4e
...
...
@@ -72,6 +72,11 @@ struct type_caster<absl::Status> : public type_caster_base<absl::Status> {
bool
load
(
handle
src
,
bool
convert
)
{
if
(
type_caster_base
<
absl
::
Status
>::
load
(
src
,
convert
))
{
// Behavior change 2023-02-09: previously `value` was simply left as
// `nullptr`.
if
(
!
value
)
{
value
=
const_cast
<
absl
::
Status
*>
(
pybind11_abseil
::
OkStatusSingleton
());
}
return
true
;
}
if
(
convert
)
{
...
...
pybind11_abseil/tests/status_example_test.py
View file @
87c41a4e
...
...
@@ -192,11 +192,16 @@ class StatusTest(parameterized.TestCase):
with
self
.
assertRaises
(
TypeError
):
status_example
.
extract_code_message
(
cap
)
@parameterized.parameters
(
None
,
''
,
0
)
@parameterized.parameters
(
''
,
0
)
def
test_status_caster_load_no_as_absl_status
(
self
,
something_random
):
with
self
.
assertRaises
(
TypeError
):
status_example
.
extract_code_message
(
something_random
)
def
test_status_caster_load_none
(
self
):
code
,
msg
=
status_example
.
extract_code_message
(
None
)
self
.
assertEqual
(
code
,
status
.
StatusCode
.
OK
)
self
.
assertEqual
(
msg
,
''
)
def
test_return_ok_status_return_value_policy_clif_automatic
(
self
):
self
.
assertIsNone
(
status_example
.
return_ok_status
(
False
))
if
not
status_example
.
PYBIND11_HAS_RETURN_VALUE_POLICY_CLIF_AUTOMATIC
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment