Example #1
0
        public void GetFunctions_TwoFunctions_HostReturnsBoth()
        {
            var pyHost = new PythonHost();
            CollectionAssert.AreEqual(new[] { "foo", "doo" },
                pyHost.GetFunctions(
            @"def foo():
            pass

            def doo():
            pass").ToArray());
        }
Example #2
0
        public static void LoadMacros()
        {
            commandIdFunctionMap.Clear();

            var existingMacros = GetMacros().ToArray();

            foreach (var pythonFile in Directory.EnumerateFiles(loadPath, "*.py"))
            {
                using (var pythonHost = new PythonHost())
                {
                    pythonHost.AddSharedObject("dte", dte);
                    var functions = pythonHost.GetFullyQualifiedFunctionNamesInFile(pythonFile);
                    RegisterCommands(functions, existingMacros);
                }
            }

            RemoveZombieMacros(existingMacros);
        }
Example #3
0
        public void GetModules_CodeHasModuleDeclaration_HostReturnsModuleName()
        {
            var pyHost = new PythonHost();
            var tempFile = Path.ChangeExtension(Path.GetTempFileName(), ".py");
            var moduleName = Path.GetFileNameWithoutExtension(tempFile);

            try
            {
                File.WriteAllText(tempFile,
            @"def foo():
            pass

            def doo():
            pass");

            CollectionAssert.AreEqual(new[] { moduleName + ".doo", moduleName + ".foo" },
                pyHost.GetFullyQualifiedFunctionNamesInFile(tempFile).ToArray());
            }
            finally
            {
                File.Delete(tempFile);
            }
        }
Example #4
0
 public void Execute_ArithmeticExpression_HostExecutesAndReturnsResult()
 {
     var pyHost = new PythonHost();
     Assert.AreEqual(2, pyHost.Execute<int>("1 + 1"));
 }
Example #5
0
 private static void Execute(string fullyQualifiedFunctionName)
 {
     using (var pythonHost = new PythonHost())
     {
         pythonHost.AddSharedObject("dte", dte);
         pythonHost.ExecuteFunctionInFile(loadPath, fullyQualifiedFunctionName);
     }
 }