If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Python/jsbridge exception when trying to use mozmill with Thunderbird

VERIFIED FIXED

Status

Testing Graveyard
Mozmill
--
critical
VERIFIED FIXED
9 years ago
a year ago

People

(Reporter: standard8, Unassigned)

Tracking

Details

Attachments

(3 attachments, 1 obsolete attachment)

(Reporter)

Description

9 years ago
Created attachment 354797 [details]
Test files

I've already reported this to Mikeal on just running from within a python script, but I'm also getting it when using mozmill on the command line interface, and I've done some more work on simplifying the test cases.

Steps to repeat:

1) Get latest mozmill/jsbridge/mozrunner files from svn, build and install.
2) Unzip the attached files. Go into the tbtest directory.
3) Get a Thunderbird nightly and put it somewhere convenient.
4) Run mozmill via the command line:

mozmill -b /path/to/thunderbird-bin -d /path/to/default/profile -s settings.py -t test

Thunderbird with the appropriate settings, I get the output:

Started  ['/Users/moztest/mozmill/tbtest/Shredder.app/Contents/MacOS/thunderbird-bin', '-profile', '/var/folders/pR/pRsFqK2OGSqiBdtdZdP4qU+++TM/-Tmp-/tmppffGq1.mozrunner']
error: uncaptured python exception, closing channel <jsbridge.network.Bridge object at 0x4ff3b0> (<type 'exceptions.KeyError'>:'uuid' [/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/asyncore.py|read|68] [/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/asyncore.py|handle_read_event|390] [/Library/Python/2.5/site-packages/jsbridge-0.9.4-py2.5.egg/jsbridge/network.py|handle_read|93] [/Library/Python/2.5/site-packages/jsbridge-0.9.4-py2.5.egg/jsbridge/network.py|process_read|222] [/Library/Python/2.5/site-packages/jsbridge-0.9.4-py2.5.egg/jsbridge/network.py|fire_callbacks|203])

Replacing step 4 with:

4) Adjust paths in runtest.py to point to appropriate binary location.
5) Start "python runtest.py"

Gives the output:

Starting Moz profile is /var/folders/pR/pRsFqK2OGSqiBdtdZdP4qU+++TM/-Tmp-/tmpzG1yFj.mozrunner
Started  ['/Users/moztest/mozmill/tbtest/Shredder.app/Contents/MacOS/thunderbird-bin', '-profile', '/var/folders/pR/pRsFqK2OGSqiBdtdZdP4qU+++TM/-Tmp-/tmpzG1yFj.mozrunner', '-no-remote', '-foreground']
Warning: unrecognized command line flag -foreground
jsbridge.start_moz done
error: uncaptured python exception, closing channel <jsbridge.network.Bridge object at 0x61c250> (<type 'exceptions.KeyError'>:'uuid' [/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/asyncore.py|read|68] [/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/asyncore.py|handle_read_event|390] [/Library/Python/2.5/site-packages/jsbridge-0.9.4-py2.5.egg/jsbridge/network.py|handle_read|93] [/Library/Python/2.5/site-packages/jsbridge-0.9.4-py2.5.egg/jsbridge/network.py|process_read|222] [/Library/Python/2.5/site-packages/jsbridge-0.9.4-py2.5.egg/jsbridge/network.py|fire_callbacks|203])

The jsbridge & mozmill extensions have been installed correctly in both cases. Mozmill will run the one and only test file in the test directory.

There are no relevant errors seen on the error console.

Using the same mozmill setup to run the tests in the mozmill svn directory on Firefox works fine.
I cleared up the issue outlined here but now I'm seeing some other problems.

I'll mark this bug fixed once the tests actually run :)
Ok, the issue noted here is fixed in r93.

I'm now seeing a new issue.

It appears as though the call to RunTestDirectory and RunTestFile are both immediately returning on tbird, this is not the case on Firefox.

It could be that the test files I'm attempting to run have some kind of importing error. The test file attached to this bug is quite out of date but I tried using nth20sd's newest test and that didn't seem to work either. In fact running tests outside of in the Editor seems to be broken in tbird.

I'll continue looking in to this today.
(Reporter)

Comment 3

9 years ago
(In reply to comment #2)
> It could be that the test files I'm attempting to run have some kind of
> importing error. The test file attached to this bug is quite out of date but I
> tried using nth20sd's newest test and that didn't seem to work either. In fact
> running tests outside of in the Editor seems to be broken in tbird.

The test file attached to this bug (test_bloat.js) still works for me in the latest Thunderbird with MozMill installed manually in a profile and manually running Thunderbird. It may not use the latest available functions, but it does work.

If I try going via runtest.py, then once TB has started (and runtest.py exited due to the current issue) and I load test_bloat.js it hangs (in the sense that nothing happens). I expect there are some jsbridge/mozmill interactions trying to talk to the dead python process that are causing it not to run.
Created attachment 354917 [details]
Mozmill test of litmus test 5426

Here's the litmus test Mikeal mentioned. The test file runs smoothly on Mozmill (once an account is created such that the account manager doesn't show up).

To run it from a commandline fresh profile, remember to remove the "//" from the lines containing the code to add a local folder. (I haven't tested this)

Likewise, I haven't tested the code in Windows/Linux, and I only know the code works from the Mac if-blocks because I tested it on Mac. It'll be good if it can be tested on those systems first before the code is finalized.
Created attachment 354918 [details]
Mozmill test of litmus test 5426 - 2

Whoops, nits fixed.
Attachment #354917 - Attachment is obsolete: true
I'm working with test_bloat.js and I have it running

There were some errors, mozmill.sleep doesn't exist, the sleep function is actually in the controller module if you need to use it outside of a MozMillController instance.

I was running in to lots of documentLoaded issues in this test without that big sleep in there though, we should have a fix for that in the next few days.

Also, you're not using a setupModule when you really should be, i was seeing lots of mainController is null exceptions.

I'm attaching my modified test_bloat.js which works. Although running with just the mozmill bin script Shredder doesn't exit, this is probably do to not using your thunderbird runner class which should specify a better kill method which will do the aggressive process lookup like we do for "firefox" processes with "thunderbird".
Created attachment 355673 [details]
modified test_bloat.js
Closing this bug since this particular issue is fixed.
Status: NEW → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → FIXED
(Reporter)

Comment 9

9 years ago
Thanks Mikeal, the script is now running fine with the latest sources. I've got queries regarding the shutdown that I'll send out to the mozmill list.
Status: RESOLVED → VERIFIED
(Assignee)

Updated

a year ago
Product: Testing → Testing Graveyard
You need to log in before you can comment on or make changes to this bug.