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/TestPyWith.cs at master · pythonnet/pythonnet Expand file tree/ Copy pathTestPyWith.csMore file actions 76 lines (66 loc) · 1.66 KB / Copy pathTestPyWith.csFile metadata and controls76 lines (66 loc) · 1.66 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 using System; using NUnit.Framework; using Python.Runtime; namespace Python.EmbeddingTest { public class TestPyWith { /// <summary> /// Test that exception is raised in context manager that ignores it. /// </summary> [Test] public void TestWithPositive() { var locals = new PyDict(); PythonEngine.Exec(@" class CmTest: def __enter__(self): return self def __exit__(self, t, v, tb): # Exception not handled, return will be False pass def fail(self): return 5 / 0 a = CmTest() ", null, locals); var a = locals.GetItem("a"); try { Py.With(a, cmTest => { cmTest.fail(); }); } catch (PythonException e) { TestContext.Out.WriteLine(e.Message); Assert.IsTrue(e.Type.Name == "ZeroDivisionError"); } } /// <summary> /// Test that exception is not raised in context manager that handles it /// </summary> [Test] public void TestWithNegative() { var locals = new PyDict(); PythonEngine.Exec(@" class CmTest: def __enter__(self): print('Enter') return self def __exit__(self, t, v, tb): # Signal exception is handled by returning true return True def fail(self): return 5 / 0 a = CmTest() ", null, locals); var a = locals.GetItem("a"); Py.With(a, cmTest => { cmTest.fail(); }); } } } |
| 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. |