FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
pythonnet/src/embed_tests/TestPyObject.cs at net8.0 · pythonnet/pythonnet · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
pythonnet
/
pythonnet
Public
Notifications
You must be signed in to change notification settings
Fork
780
Star
5.5k
Code
Issues
153
Pull requests
12
Discussions
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Discussions
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
pythonnet
/
src
/
embed_tests
/
TestPyObject.cs
Copy path
More file actions
More file actions
Latest commit
History
History
History
111 lines (93 loc) · 3.22 KB
Breadcrumbs
pythonnet
/
src
/
embed_tests
/
TestPyObject.cs
Copy path
File metadata and controls
111 lines (93 loc) · 3.22 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
using
System
;
using
System
.
Collections
.
Generic
;
using
System
.
Linq
;
using
NUnit
.
Framework
;
using
Python
.
Runtime
;
namespace
Python
.
EmbeddingTest
{
public
class
TestPyObject
{
[
OneTimeSetUp
]
public
void
SetUp
(
)
{
PythonEngine
.
Initialize
(
)
;
}
[
OneTimeTearDown
]
public
void
Dispose
(
)
{
PythonEngine
.
Shutdown
(
)
;
}
[
Test
]
public
void
TestGetDynamicMemberNames
(
)
{
List
<
string
>
expectedMemberNames
=
new
List
<
string
>
{
"add"
,
"getNumber"
,
"member1"
,
"member2"
}
;
PyDict
locals
=
new
PyDict
(
)
;
PythonEngine
.
Exec
(
@"
class MemberNamesTest(object):
def __init__(self):
self.member1 = 123
self.member2 = 'Test string'
def getNumber(self):
return 123
def add(self, x, y):
return x + y
a = MemberNamesTest()
"
,
null
,
locals
)
;
PyObject
a
=
locals
.
GetItem
(
"a"
)
;
IEnumerable
<
string
>
memberNames
=
a
.
GetDynamicMemberNames
(
)
;
foreach
(
string
expectedName
in
expectedMemberNames
)
{
Assert
.
IsTrue
(
memberNames
.
Contains
(
expectedName
)
,
"Could not find member '{0}'."
,
expectedName
)
;
}
}
[
Test
]
public
void
InvokeNull
(
)
{
var
list
=
PythonEngine
.
Eval
(
"list"
)
;
Assert
.
Throws
<
ArgumentNullException
>
(
(
)
=>
list
.
Invoke
(
new
PyObject
[
]
{
null
}
)
)
;
}
[
Test
]
public
void
AsManagedObjectInvalidCast
(
)
{
var
list
=
PythonEngine
.
Eval
(
"list"
)
;
Assert
.
Throws
<
InvalidCastException
>
(
(
)
=>
list
.
AsManagedObject
(
typeof
(
int
)
)
)
;
}
[
Test
]
public
void
UnaryMinus_ThrowsOnBadType
(
)
{
dynamic
list
=
new
PyList
(
)
;
var
error
=
Assert
.
Throws
<
PythonException
>
(
(
)
=>
list
=
-
list
)
;
Assert
.
AreEqual
(
"TypeError"
,
error
.
Type
.
Name
)
;
}
[
Test
]
[
Obsolete
]
public
void
GetAttrDefault_IgnoresAttributeErrorOnly
(
)
{
var
ob
=
new
PyObjectTestMethods
(
)
.
ToPython
(
)
;
using
var
fallback
=
new
PyList
(
)
;
var
attrErrResult
=
ob
.
GetAttr
(
nameof
(
PyObjectTestMethods
.
RaisesAttributeError
)
,
fallback
)
;
Assert
.
IsTrue
(
PythonReferenceComparer
.
Instance
.
Equals
(
fallback
,
attrErrResult
)
)
;
var
typeErrResult
=
Assert
.
Throws
<
PythonException
>
(
(
)
=>
ob
.
GetAttr
(
nameof
(
PyObjectTestMethods
.
RaisesTypeError
)
,
fallback
)
)
;
Assert
.
AreEqual
(
Exceptions
.
TypeError
,
typeErrResult
.
Type
)
;
}
// regression test from https://github.com/pythonnet/pythonnet/issues/1642
[
Test
]
public
void
InheritedMethodsAutoacquireGIL
(
)
{
PythonEngine
.
Exec
(
"from System import String
\n
String.Format('{0},{1}', 1, 2)"
)
;
}
}
public
class
PyObjectTestMethods
{
public
string
RaisesAttributeError
=>
throw
new
PythonException
(
new
PyType
(
Exceptions
.
AttributeError
)
,
value
:
null
,
traceback
:
null
)
;
public
string
RaisesTypeError
=>
throw
new
PythonException
(
new
PyType
(
Exceptions
.
TypeError
)
,
value
:
null
,
traceback
:
null
)
;
}
}
Back
|
FazBrowse Home
|
New Git URL