[IronPython] trying to build IronPythonTools locally
José F. Romaniello
jfromaniello at gmail.com
Mon Oct 25 19:49:26 CEST 2010
GREAT, i think i got it!
Thank you very much.
2010/10/25 Dino Viehland <dinov at microsoft.com>
> 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-bounces at lists.ironpython.com [mailto:
> users-bounces at 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-bounces at lists.ironpython.com [mailto:
> users-bounces at 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 <curt at 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 <
> jfromaniello at 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 at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20101025/d4248a45/attachment.html>
More information about the Ironpython-users
mailing list