GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — pythonnet/src/embed_tests/pyimport.cs at master · pythonnet/pythonnet Expand file tree/ Copy pathpyimport.csMore file actions 114 lines (99 loc) · 3.38 KB / Copy pathpyimport.csFile metadata and controls114 lines (99 loc) · 3.38 KB 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 112 113 using System; using System.IO; using System.Runtime.InteropServices; using NUnit.Framework; using Python.Runtime; namespace Python.EmbeddingTest { /// <summary> /// Test Import unittests and regressions /// </summary> /// <remarks> /// Keeping in old-style SetUp/TearDown due to required SetUp. /// The required directory structure was added to .\pythonnet\src\embed_tests\fixtures\ directory: /// + PyImportTest/ /// | - __init__.py /// | + test/ /// | | - __init__.py /// | | - one.py /// </remarks> public class PyImportTest { string TestPath; [OneTimeSetUp] public void SetUp() { /* Append the tests directory to sys.path * using reflection to circumvent the private * modifiers placed on most Runtime methods. */ TestPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "fixtures"); TestContext.Out.WriteLine(TestPath); using var str = Runtime.Runtime.PyString_FromString(TestPath); Assert.That(str.IsNull(), Is.False); BorrowedReference path = Runtime.Runtime.PySys_GetObject("path"); Assert.That(path.IsNull, Is.False); Runtime.Runtime.PyList_Append(path, str.Borrow()); } [OneTimeTearDown] public void Dispose() { using var _ = Py.GIL(); Py.Import("sys").GetAttr("path").InvokeMethod("remove", new PyString(TestPath)); } /// <summary> /// Test subdirectory import /// </summary> [Test] public void TestDottedName() { var module = PyModule.Import("PyImportTest.test.one"); Assert.IsNotNull(module); } /// <summary> /// Tests that sys.args is set. If it wasn't exception would be raised. /// </summary> [Test] public void TestSysArgsImportException() { var module = PyModule.Import("PyImportTest.sysargv"); Assert.IsNotNull(module); } /// <summary> /// Test Global Variable casting. GH#420 /// </summary> [Test] public void TestCastGlobalVar() { dynamic foo = Py.Import("PyImportTest.cast_global_var"); Assert.That(foo.FOO.ToString(), Is.EqualTo("1")); Assert.That(foo.test_foo().ToString(), Is.EqualTo("1")); foo.FOO = 2; Assert.That(foo.FOO.ToString(), Is.EqualTo("2")); Assert.That(foo.test_foo().ToString(), Is.EqualTo("2")); } [Test] public void BadAssembly() { string path = Runtime.Runtime.PythonDLL; if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { path = @"C:\Windows\System32\kernel32.dll"; } Assert.That(File.Exists(path), Is.True, $"Test DLL {path} does not exist!"); string code = $@" import clr clr.AddReference('{path}') "; Assert.Throws<BadImageFormatException>(() => PythonEngine.Exec(code)); } } } // regression for https://github.com/pythonnet/pythonnet/issues/1601 // initialize fails if a class derived from IEnumerable is in global namespace public class PublicEnumerator : System.Collections.IEnumerable { public System.Collections.IEnumerator GetEnumerator() { return null; } } |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |