Oh, I should add both of those projects are both standalone EXEs which can be 
run to run all of the tests and they're also VS unit tests.  So if you have 
some fancy version of VS w/ unit testing then you can just run all the tests 
from within VS using Test->Run->All Tests in Solution.  If you don't have the 
fancy version you can just them from the command line.

From: users-boun...@lists.ironpython.com 
[mailto:users-boun...@lists.ironpython.com] On Behalf Of Dino Viehland
Sent: Monday, October 25, 2010 10:32 AM
To: Discussion of IronPython
Subject: Re: [IronPython] trying to build IronPythonTools locally

The tests are rather lacking but some do exist.  There's 2 test projects: 
AnalysisTest and UnitTests.  AnalysisTest contains tests which are directly 
targeting the analysis engine.  UnitTests includes some mocks for various VS 
interfaces and handles things like code completion.  I also have a set of tests 
that I would run through by hand.  I've pasted those below in case anyone wants 
to automate them.

REPL Window:
            View->IronPython Command Line
                        "def f(): pass" + 2 ENTERS
                        f( should bring signature help up
                        "x = 42"
                        "x." should bring up intellisense completion
                        "x " should not being up any completions.
                        Up-up should scroll back to def f(): pass
                        Enter in a middle of a line should insert new line
                        Escape should clear both lines
                        "x=42" left left ctrl-enter should commit assignment
                        while True: pass / Right Click -> Break Execution (or 
Ctrl-Break) should break execution
                        Closing window + re-opening should still have contents
                        Ctrl-Enter on previous input should paste input to end 
of buffer (doing it again should paste again - appending onto previous input)
                        Type some text, hit Ctrl-Enter, should execute current 
line
                        Type a function definition, go to next line, type pass, 
navigate left, hit ctrl-enter, should immediately execute func def.
                        Context Menu Cut/Copy/Paste works
                        Context Menu Reset repl works
                        x = 42; x.car[enter] - should type "car" not complete 
to "conjugate"
                        x = 42; x.conjugate[enter] - should respect enter 
completes option, and should respect enter at end of word completes option.  
When it does execute the text the output should be on the next line.
Define function "def f():\r\n    print 'hi'", scroll back up to history, add 
print "hello" to 2nd line, enter, scroll back through both function definitions
                        Enter "while True: pass", then hit up/down arrow, 
should move the caret in the edit buffer
                        Type "raise Exception()", hit enter, raise Exception() 
should have appropriate syntax color highlighting.
                        Type: "def f():[ENTER]print 'hi'[ENTER][ENTER]", hit up 
arrow, function should be brought back, cursor should be right after 'hi'.  
Press ENTER again, type "print 'hello'"[ENTER][ENTER] and function should be 
committed.
                        Type "import sys", commit, then type "sys", and hit 
backspace a couple of times.  No exceptions should occur
                        Tools->Options->Text 
Editor->IronPython->Advanced->Options.
                                    Add "Frames=True", go to repl, restart 
repl, import sys, make sure sys._getframe is present
                                    Go back to options, add 
";RecursionLimit=50", restart repl, import sys, sys.getrecursionlimit() should 
return 50, "def f(): f()", call f(), should get a max recursion overflowed 
exception stack trace
            Debug->Execute * in REPL
                        In Python file should execute text in REPL window
                        Variables assigned in file should be in scope
                        Send to Python Repl from edit buffer should send text 
to REPL window
                                    Should open REPL if not already open
                                    Should not send enter unless selected in 
text
                        + View->IronPython Command Line tests
                        import System / System.Environment.Exit(0);
                        Kill remote process
                        Start project, make sure CWD 
(System.Environment.CurrentDirectory) is project CWD
Close project, open .py file, start .py file, make sure CWD is .py files 
directory

Navigation Bar:
            Verify displays and greys out 1st item when at top of file not in 
class/def
            Verify lhs properly transitions into class and func and back out 
(going back to dimmed & 1st item selected)
            Verify function in class properly transitions when moving in and 
out (going back to dimmed & 1st item selected)
            "class " and "def " - functions and classes w null names shouldn't 
break the navigation bar (shouldn't display in navigation bar at all?)


Completion:
            Verify various left hand sides which need to be successfully parsed:
                        X[0].
                        X(0).
                        X(0, 0).
                        X(0, *args).
                        X(0, **args).
                        x.foo.
                        x.foo[0].
                        x.foo(0).
                        x.foo(y()).
            Verify from import completions
            Verify import completions
            Verify Ctrl-J/Ctrl-Space reflects all imported members
            "2." Shouldn't bring up completions (typing a float)
            Comma shouldn't bring up signature help in tuples, lists, and 
dictionaries
            from modulethatdoesnot exist import
            import modulethatdoesnotexist

Signature Help:
            ( brings up signature help
            Comma navigiates to next parameter
            Comma when overloads present and exceeds # of args navigates to 
next overload
            Too many args properly goes to params array (both when params array 
has more and less arguments vs another overload)
Type: def(f, x): pass, then do f(, backspace over (, signature help should be 
dismissed.  Type (f( backspace over (, help should be dismissed, new help 
should be created for previous call.

Object Browser:
            Object browser properly reports class and function members
            Signature help is properly displayed
            Double clicking goes to definition

Outlining:
            Classes and functions are properly outlined
            Collapsing functions/classes works
            Collapsing functions/classes with weird ending white space 
collapses in a sane manner

Templates:
            Run through each template, create a new project, run it, run it in 
debug mode.
            Create each file template in applicable project

Brace matching:
            Test at beginning and end, should high light both braces:
            (), [], {}
            ( ), [ ], { }
                        ([), [(], {(}
                        ( () ), [ [] ], { {} }
            Test ( and ) at beginning and end of file, beginning and end of line

Find All References:
            Ctrl-K-Ctrl-R at start of editor buffer
            Ctrl-K-Ctrl-R at end of editor buffer
            Ctrl-K Ctrl-R at start of identifier
            Ctrl-K Ctrl-R at end of identifier


Editor:
            Select a region and press enter should clear the region
            Select a region and press backspace - should clear the region
            Enter some text on a line, hit enter, enter 12 characters of white 
space on the line, move left 8 characters, hit backspace, should delete 4 
spaces to the left.
            Enter "abcd" on a line followed by a bunch of spaces.  Then move 
back to the "d", press backspace, should delete the d.

WPF Designer:
            Drag all controls onto the designer surface successfully (note 
Image fails if the project is on a network share due to a WPF bug - it fails in 
C# as well)
            Open .xaml file, close .py file, double click object to add event 
handler, should open .py file and add event handler
            Add ? control, click on Name over in properties, change name.  Go 
to code and dot through name on Window object.  Name should be available in 
intellisense.


From: users-boun...@lists.ironpython.com 
[mailto:users-boun...@lists.ironpython.com] On Behalf Of José F. Romaniello
Sent: Monday, October 25, 2010 9:02 AM
To: Discussion of IronPython
Subject: Re: [IronPython] trying to build IronPythonTools locally

Oh thanks, you are right!
I can build now.
Another question, is there any unit tests for IronPythonTools? I am using the 
IronPythonTools.sln in the trunk.

I just want to dig in to the code and see if i can contribute with few bugs I 
found in the highlighting and code completion.

I've  some experience doing this same thing for other extension 
(http://hqladdin.codeplex.com)

thank you

2010/10/25 Curt Hagenlocher <c...@hagenlocher.org<mailto:c...@hagenlocher.org>>
This is the "uninstall previous version" task. Is it possible that you've 
previously installed the extension when running as Administrator and that your 
current user id doesn't have the rights to delete the files? This might be true 
if, for instance, you previously installed from the MSI.
On Mon, Oct 25, 2010 at 7:38 AM, José F. Romaniello 
<jfromanie...@gmail.com<mailto:jfromanie...@gmail.com>> wrote:
Hi all, I am trying to build IronPython Tools on my machine, but i get this 
exception:

------ Build started: Project: IronPythonTools, Configuration: Debug Any CPU 
------
  IronPythonTools ->
  IronPythonTools ->
  IronPythonTools -> D:\pos\IronPython\bin\Debug\IronPythonTools.dll
  Creating intermediate PkgDef file.
  Creating VSIX Container...
  IronPythonTools -> D:\pos\IronPython\bin\Debug\IronPythonTools.vsix
C:\Program Files 
(x86)\MSBuild\Microsoft\VisualStudio\v10.0\VSSDK\Microsoft.VsSDK.targets(420,5):
 error : Exception has been thrown by the target of an invocation.
========== Build: 11 succeeded or up-to-date, 1 failed, 0 skipped ==========

I tried with a reset of the  Experimental Hive but I have still the same 
problem.

Thank you in advance!

_______________________________________________
Users mailing list
Users@lists.ironpython.com<mailto:Users@lists.ironpython.com>
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


_______________________________________________
Users mailing list
Users@lists.ironpython.com<mailto:Users@lists.ironpython.com>
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to