FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
pythonnet/src/embed_tests/pyinitialize.cs at master · asyncrun/pythonnet · GitHub
asyncrun
pythonnet
Repository navigation
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
pythonnet
/
src
/
embed_tests
/
pyinitialize.cs
Copy path
More file actions
More file actions
Latest commit
History
History
History
78 lines (72 loc) · 2.58 KB
Breadcrumbs
pythonnet
/
src
/
embed_tests
/
pyinitialize.cs
Copy path
File metadata and controls
78 lines (72 loc) · 2.58 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
using
System
;
using
NUnit
.
Framework
;
using
Python
.
Runtime
;
namespace
Python
.
EmbeddingTest
{
public
class
PyInitializeTest
{
/// <summary>
/// Tests issue with multiple simple Initialize/Shutdowns.
/// Fixed by #343
/// </summary>
[
Test
]
public
static
void
StartAndStopTwice
(
)
{
PythonEngine
.
Initialize
(
)
;
PythonEngine
.
Shutdown
(
)
;
PythonEngine
.
Initialize
(
)
;
PythonEngine
.
Shutdown
(
)
;
}
[
Test
]
public
static
void
LoadDefaultArgs
(
)
{
using
(
new
PythonEngine
(
)
)
using
(
var
argv
=
new
PyList
(
Runtime
.
Runtime
.
PySys_GetObject
(
"argv"
)
)
)
{
Assert
.
AreNotEqual
(
0
,
argv
.
Length
(
)
)
;
}
}
[
Test
]
public
static
void
LoadSpecificArgs
(
)
{
var
args
=
new
[
]
{
"test1"
,
"test2"
}
;
using
(
new
PythonEngine
(
args
)
)
using
(
var
argv
=
new
PyList
(
Runtime
.
Runtime
.
PySys_GetObject
(
"argv"
)
)
)
{
Assert
.
AreEqual
(
args
[
0
]
,
argv
[
0
]
.
ToString
(
)
)
;
Assert
.
AreEqual
(
args
[
1
]
,
argv
[
1
]
.
ToString
(
)
)
;
}
}
/// <summary>
/// Failing test demonstrating current issue with OverflowException (#376)
/// and ArgumentException issue after that one is fixed.
/// More complex version of StartAndStopTwice test
/// </summary>
[
Test
]
[
Ignore
(
"GH#376: System.OverflowException : Arithmetic operation resulted in an overflow"
)
]
//[Ignore("System.ArgumentException : Cannot pass a GCHandle across AppDomains")]
public
void
ReInitialize
(
)
{
var
code
=
"from System import Int32
\n
"
;
PythonEngine
.
Initialize
(
)
;
using
(
Py
.
GIL
(
)
)
{
// Import any class or struct from .NET
PythonEngine
.
RunSimpleString
(
code
)
;
}
PythonEngine
.
Shutdown
(
)
;
PythonEngine
.
Initialize
(
)
;
using
(
Py
.
GIL
(
)
)
{
// Import a class/struct from .NET
// This class/struct must be imported during the first initialization.
PythonEngine
.
RunSimpleString
(
code
)
;
// Create an instance of the class/struct
// System.OverflowException Exception will be raised here.
// If replacing int with Int64, OverflowException will be replaced with AppDomain exception.
PythonEngine
.
RunSimpleString
(
"Int32(1)"
)
;
}
PythonEngine
.
Shutdown
(
)
;
}
}
}
Back
|
FazBrowse Home
|
New Git URL