public ResolveResult Resolve(string expression)
        {
            ExpressionResult      expressionResult = new ExpressionResult(expression);
            PythonResolverContext context          = new PythonResolverContext(ParseInfo, expressionResult, String.Empty);

            ResolveResult = Resolver.Resolve(context);
            return(ResolveResult);
        }
        public void Init()
        {
            string python =
                "from sys import exit as myexit";

            parseInfo       = PythonParserHelper.CreateParseInfo(python);
            resolverContext = new PythonResolverContext(parseInfo);
        }
        public void HasDottedImportNameReturnsFalseForMyNamespaceWithMyNamespaceTestImportedWithoutDtso()
        {
            string           code      = "import MyNamespaceTest";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            Assert.IsFalse(resolverContext.HasDottedImportNameThatStartsWith("MyNamespace"));
        }
        public void HasDottedImportNameReturnsTrueForSystemWithSystemWindowsFormsImported()
        {
            string           code      = "import System.Windows.Forms";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            Assert.IsTrue(resolverContext.HasDottedImportNameThatStartsWith("System"));
        }
Example #5
0
        public void Init()
        {
            string python =
                "import math as m\r\n" +
                "import sys as s";

            parseInfo       = PythonParserHelper.CreateParseInfo(python);
            resolverContext = new PythonResolverContext(parseInfo);
        }
Example #6
0
        public void HasImportReturnsTrueForImportedAsName()
        {
            string           code      = "import sys as something";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            Assert.IsTrue(resolverContext.HasImport("something"));
        }
Example #7
0
        public void HasImportReturnsFalseForFromImport()
        {
            string           code      = "from import sys";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            Assert.IsFalse(resolverContext.HasImport("sys"));
        }
Example #8
0
        public void HasImportReturnsTrueForImportThatDoesExistInCompilationUnitWithSingleUsingWithMultipleNamespaces()
        {
            string           code      = "import abc, ghi";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            Assert.IsTrue(resolverContext.HasImport("ghi"));
        }
Example #9
0
        public void HasImportReturnsTrueForImportThatDoesExistInCompilationUnit()
        {
            string           code      = "import abc";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            Assert.IsTrue(resolverContext.HasImport("abc"));
        }
Example #10
0
        public void GetModulesThatImportEverythingReturnsSysForFromSysImportAllStatement()
        {
            string           code      = "from sys import *";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            string[] expectedModules = new string[] { "sys" };
            Assert.AreEqual(expectedModules, resolverContext.GetModulesThatImportEverything());
        }
Example #11
0
        public void GetModulesThatImportEverythingReturnsEmptyCollectionIfNotImportAll()
        {
            string           code      = "from math import tan";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            string[] expectedModules = new string[0];
            Assert.AreEqual(expectedModules, resolverContext.GetModulesThatImportEverything());
        }
Example #12
0
        public void GetModulesThatImportEverythingIgnoresNonFromImportStatement()
        {
            string code =
                "import math\r\n" +
                "from sys import *";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            string[] expectedModules = new string[] { "sys" };
            Assert.AreEqual(expectedModules, resolverContext.GetModulesThatImportEverything());
        }
        public void Init()
        {
            MockProjectContent projectContent = new MockProjectContent();
            MockProjectContent winFormsReferenceProjectContent = new MockProjectContent();

            winFormsReferenceProjectContent.AddExistingNamespaceContents("System.Windows.Forms", new ArrayList());
            projectContent.ReferencedContents.Add(winFormsReferenceProjectContent);
            DefaultCompilationUnit unit = new DefaultCompilationUnit(projectContent);

            parseInfo = new ParseInformation(unit);

            resolverContext = new PythonResolverContext(parseInfo);
        }
Example #14
0
        public void Resolve_FieldHasNoReturnType_DoesNotThrowNullReferenceException()
        {
            MockProjectContent projectContent = new MockProjectContent();

            UnitTestingUtils.MockClass c = new UnitTestingUtils.MockClass(projectContent, "Test");
            projectContent.SetClassToReturnFromGetClass("self", c);
            DefaultField field = c.AddField("randomNumber");

            field.ReturnType = null;
            ParseInformation parseInfo = new ParseInformation(c.CompilationUnit);

            ExpressionResult            expression            = new ExpressionResult("self.randomNumber.randint", ExpressionContext.Default);
            PythonClassResolver         classResolver         = new PythonClassResolver();
            PythonLocalVariableResolver localVariableResolver = new PythonLocalVariableResolver(classResolver);
            PythonMemberResolver        resolver = new PythonMemberResolver(classResolver, localVariableResolver);

            PythonResolverContext context = new PythonResolverContext(parseInfo, expression, "class Test:\r\npass");

            Assert.DoesNotThrow(delegate { resolver.Resolve(context); });
        }
 void CreatePythonResolverContext()
 {
     expression = new ExpressionResult("self");
     context    = new PythonResolverContext(parseInfo, expression, String.Empty);
 }