public void GetInheritedPanelObjectFromFieldExpression()
        {
            AssignmentStatement          statement = PythonParserHelper.GetAssignmentStatement("self.panel1.Name = \"abc\"");
            PythonControlFieldExpression field     = PythonControlFieldExpression.Create(statement.Left[0] as MemberExpression);

            Assert.AreEqual(DerivedForm.GetPanel(), field.GetObject(ComponentCreator));
        }
        public void FieldIsNotSelfReference()
        {
            AssignmentStatement          statement = PythonParserHelper.GetAssignmentStatement("self.listView1.TooltipText = \"abc\"");
            PythonControlFieldExpression field     = PythonControlFieldExpression.Create(statement.Left[0] as MemberExpression);

            Assert.IsTrue(field.IsSelfReference);
        }
        public void LocalVariableIsNotSelfReference()
        {
            AssignmentStatement          statement = PythonParserHelper.GetAssignmentStatement("listViewItem1.TooltipText = \"abc\"");
            PythonControlFieldExpression field     = PythonControlFieldExpression.Create(statement.Left[0] as MemberExpression);

            Assert.IsFalse(field.IsSelfReference);
        }
        public void NullPassedToPythonControlFieldExpressionEquals()
        {
            AssignmentStatement          statement = PythonParserHelper.GetAssignmentStatement("self._textBox1.Name = \"abc\"");
            PythonControlFieldExpression field     = PythonControlFieldExpression.Create(statement.Left[0] as MemberExpression);

            Assert.IsFalse(field.Equals(null));
        }
        public void MethodNameWithNoVariableName()
        {
            string         code                = "self.Items.Add(self._fileMenuItem)";
            CallExpression expression          = PythonParserHelper.GetCallExpression(code);
            PythonControlFieldExpression field = PythonControlFieldExpression.Create(expression);

            AssertAreEqual(field, String.Empty, "Items", "Add", "self.Items");
        }
        public void SetToolTipMethodCall()
        {
            string         code                = "self._toolTip1.SetToolTip(self, \"Test\")";
            CallExpression expression          = PythonParserHelper.GetCallExpression(code);
            PythonControlFieldExpression field = PythonControlFieldExpression.Create(expression);

            AssertAreEqual(field, "toolTip1", "_toolTip1", "SetToolTip", "self._toolTip1");
        }
        public void SetUpFixture()
        {
            MockComponentCreator   componentCreator = new MockComponentCreator();
            CallExpression         callExpression   = PythonParserHelper.GetCallExpression(code);
            PythonCodeDeserializer deserializer     = new PythonCodeDeserializer(componentCreator);

            args = deserializer.GetArguments(callExpression);
        }
        public void GetMemberNames()
        {
            string[]            expected  = new string[] { "a", "b" };
            string              code      = "a.b = 0";
            AssignmentStatement statement = PythonParserHelper.GetAssignmentStatement(code);

            Assert.AreEqual(expected, PythonControlFieldExpression.GetMemberNames(statement.Left[0] as MemberExpression));
        }
        public void Init()
        {
            string python =
                "from sys import exit as myexit";

            parseInfo       = PythonParserHelper.CreateParseInfo(python);
            resolverContext = new PythonResolverContext(parseInfo);
        }
        public void GetButtonObject()
        {
            using (Button button = new Button()) {
                AssignmentStatement          statement = PythonParserHelper.GetAssignmentStatement("_button1.Size = System.Drawing.Size(10, 10)");
                PythonControlFieldExpression field     = PythonControlFieldExpression.Create(statement.Left[0] as MemberExpression);

                Assert.AreEqual(button, field.GetObjectForMemberName(button));
            }
        }
예제 #11
0
        public void Init()
        {
            string python =
                "import math as m\r\n" +
                "import sys as s";

            parseInfo       = PythonParserHelper.CreateParseInfo(python);
            resolverContext = new PythonResolverContext(parseInfo);
        }
예제 #12
0
        public void HasImportReturnsTrueForImportThatDoesExistInCompilationUnitWithSingleUsingWithMultipleNamespaces()
        {
            string           code      = "import abc, ghi";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            Assert.IsTrue(resolverContext.HasImport("ghi"));
        }
        public void GetInvalidTwoLevelDeepButtonPropertyDescriptorForSelfReference()
        {
            using (Button button = new Button()) {
                AssignmentStatement          statement = PythonParserHelper.GetAssignmentStatement("self._button1.InvalidProperty.BorderSize = 3");
                PythonControlFieldExpression field     = PythonControlFieldExpression.Create(statement.Left[0] as MemberExpression);

                Assert.IsNull(field.GetObjectForMemberName(button));
            }
        }
예제 #14
0
        public void HasImportReturnsTrueForImportThatDoesExistInCompilationUnit()
        {
            string           code      = "import abc";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            Assert.IsTrue(resolverContext.HasImport("abc"));
        }
예제 #15
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"));
        }
        public void LocalVariable()
        {
            AssignmentStatement          statement = PythonParserHelper.GetAssignmentStatement("listViewItem1.TooltipText = \"abc\"");
            PythonControlFieldExpression field     = PythonControlFieldExpression.Create(statement.Left[0] as MemberExpression);

            PythonControlFieldExpression expectedField = new PythonControlFieldExpression("TooltipText", "listViewItem1", String.Empty, "listViewItem1.TooltipText");

            Assert.AreEqual(expectedField, field);
        }
예제 #17
0
        public void HasImportReturnsFalseForFromImport()
        {
            string           code      = "from import sys";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            Assert.IsFalse(resolverContext.HasImport("sys"));
        }
        public void HasDottedImportNameReturnsFalseForMyNamespaceWithMyNamespaceTestImportedWithoutDtso()
        {
            string           code      = "import MyNamespaceTest";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            Assert.IsFalse(resolverContext.HasDottedImportNameThatStartsWith("MyNamespace"));
        }
        public void GetButtonFlatAppearanceObject()
        {
            using (Button button = new Button()) {
                AssignmentStatement          statement = PythonParserHelper.GetAssignmentStatement("_button1.FlatAppearance.BorderSize = 3");
                PythonControlFieldExpression field     = PythonControlFieldExpression.Create(statement.Left[0] as MemberExpression);

                Assert.AreEqual(button.FlatAppearance, field.GetObjectForMemberName(button));
            }
        }
        public void HasDottedImportNameReturnsTrueForSystemWithSystemWindowsFormsImported()
        {
            string           code      = "import System.Windows.Forms";
            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            PythonResolverContext resolverContext = new PythonResolverContext(parseInfo);

            Assert.IsTrue(resolverContext.HasDottedImportNameThatStartsWith("System"));
        }
        public void CreateParseInfoReturnsParseInfoWithSingleClass()
        {
            string code =
                "class foo:\r\n" +
                "    pass";

            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);

            Assert.AreEqual("foo", parseInfo.CompilationUnit.Classes[0].Name);
        }
        public void GetAssignmentStatementReturnsFirstAssignmentStatementInCode()
        {
            string code =
                "i = 10";

            AssignmentStatement assignment     = PythonParserHelper.GetAssignmentStatement(code);
            NameExpression      nameExpression = assignment.Left[0] as NameExpression;

            Assert.AreEqual("i", nameExpression.Name);
        }
예제 #23
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());
        }
        public void GetCallExpressionReturnsFirstCallStatementInCode()
        {
            string code =
                "run()";

            CallExpression call           = PythonParserHelper.GetCallExpression(code);
            NameExpression nameExpression = call.Target as NameExpression;

            Assert.AreEqual("run", nameExpression.Name);
        }
예제 #25
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());
        }
        public void PythonControlFieldExpressionEquals()
        {
            AssignmentStatement          statement = PythonParserHelper.GetAssignmentStatement("self._textBox1.Name = \"abc\"");
            PythonControlFieldExpression field1    = PythonControlFieldExpression.Create(statement.Left[0] as MemberExpression);

            statement = PythonParserHelper.GetAssignmentStatement("self._textBox1.Name = \"def\"");
            PythonControlFieldExpression field2 = PythonControlFieldExpression.Create(statement.Left[0] as MemberExpression);

            Assert.AreEqual(field1, field2);
        }
        public void BooleanParameter()
        {
            List <object> expectedArgs = new List <object>();

            expectedArgs.Add(true);

            string         code           = "TestClass(True)";
            CallExpression callExpression = PythonParserHelper.GetCallExpression(code);
            List <object>  args           = deserializer.GetArguments(callExpression);

            Assert.AreEqual(expectedArgs, args);
        }
예제 #28
0
        public void Parse_ClassMethodHasNoPropertyButHasAssignmentStatementUsingMemberExpression_ParseInfoHasNoPropertyAddedAndNoExceptionThrown()
        {
            string code =
                "class MyClass:\r\n" +
                "    a.b = foo()\r\n" +
                "\r\n";

            ParseInformation parseInfo = PythonParserHelper.CreateParseInfo(code);
            int count = parseInfo.CompilationUnit.Classes[0].Properties.Count;

            Assert.AreEqual(0, count);
        }
        public void EnumParameter()
        {
            List <object> expectedArgs = new List <object>();

            expectedArgs.Add(AnchorStyles.Top);

            string         code           = "TestClass(System.Windows.Forms.AnchorStyles.Top)";
            CallExpression callExpression = PythonParserHelper.GetCallExpression(code);
            List <object>  args           = deserializer.GetArguments(callExpression);

            Assert.AreEqual(expectedArgs, args);
        }
        public void GetObjectInMethodCallFromSpecifiedObject()
        {
            string pythonCode = "self.Controls.AddRange(System.Array[System.Windows.Forms.ToolStripItem](\r\n" +
                                "    [self._fileToolStripMenuItem,\r\n" +
                                "    self._editToolStripMenuItem]))";

            CallExpression callExpression = PythonParserHelper.GetCallExpression(pythonCode);

            using (Form form = new Form()) {
                Assert.AreSame(form.Controls, PythonControlFieldExpression.GetMember(form, callExpression));
            }
        }