Modify

Opened 16 months ago

Closed 16 months ago

Last modified 16 months ago

#11109 closed defect (fixed)

Unexpected hints for leave action in RPC ticket.getActions

Reported by: olemis Owned by: osimons
Priority: low Component: XmlRpcPlugin
Severity: minor Keywords: ticket workflow actions 1.0.2 1.1.0
Cc: jun66j5 Trac Release: 1.0

Description

Sometimes tracrpc.tests.ticket:RpcTicketTestCase.test_getActions in Trac>=1.0 fails because «The ticket will remain with no owner.» hint is returned by controller.render_ticket_action_control (controller => ConfigurableTicketWorkflow) for leave action (instead of empty string as expected) .

After reviewing the code of trac.ticket.default_workflow:render_ticket_action_control inconsistencies may be related to the fact that the number of operations for leave action may not be 1 under certain circumstances .

Attachments (0)

Change History (11)

comment:1 follow-up: Changed 16 months ago by rjollos

It sounds like it is related to the change in t:#11090/ [t 11778], but that change is scheduled for 1.0.2 so I wouldn't expect it would cause a problem for you in Trac <= 1.0.1.

comment:2 in reply to: ↑ 1 Changed 16 months ago by olemis

  • Cc jun66j5 added
  • Keywords 1.0.2 1.1.0 added

Replying to rjollos:

It sounds like it is related to the change in t:#11090/ [t 11778], but that change is scheduled for 1.0.2 so I wouldn't expect it would cause a problem for you in Trac <= 1.0.1.

Maybe that's the reason why osimons cannot reproduce this issue ?
In any case IMHO , something should be done to anticipate this test failure looking forward to Trac=1.0.2 . The failure is no big deal though ...

I'm running tests against relatively recent versions of branches in Trac source code i.e.

trunk => svn-11784
1.0-stable => svn-11783
0.12-stable => svn-11768
0.11-stable => svn-10236

This error is noticed in the first two cases mentioned above .

comment:3 Changed 16 months ago by osimons

I was sure my mirror was up-to-date, but seems I was missing some recent changes. Now I see the error too. Fix coming shortly.

comment:4 Changed 16 months ago by osimons

  • Resolution set to fixed
  • Status changed from new to closed

(In [13202]) XmlRpcPlugin: Fix tests after recent text changes in workflow action hints. Closes #11109.

comment:5 follow-up: Changed 16 months ago by osimons

Hmm. More worrying is the fact that latest 1.0.2dev now leaves a stray functional server process running after tests terminate. I need to kill it manually every time.

I see there has been a number of changes to functional infrastructure in Trac recently, and from the error message I get it seems we try to do too much at exit - and failing badly (this originates from inside the new-ish trac.util.terminate():

trac/util/__init__.py:319: RuntimeWarning: Parent module 'trac.util' \
                           not found while handling absolute import
  import os

I don't think we can depend on new imports succeeding at exit - we can hardly even depend on references to existing objects still being around... The new code works fine as tests run (start()/stop()/restart()), but I think trying to terminate self at exit needs to be shorter and simpler to succeed in a consistent manner. As we subclass this functional testenvironment, the lifecycle of this object is partly out of our hands.

comment:6 Changed 16 months ago by osimons

(In [13203]) XmlRpcPlugin: Safer strategy for terminating functional test server. Refs #11109.

comment:7 follow-up: Changed 16 months ago by osimons

Following [13203] at least the server terminates consistently, but RuntimeWarning remains. However that is now just a Trac problem, and no longer a direct concern for the RPC plugin.

comment:8 in reply to: ↑ 5 ; follow-up: Changed 16 months ago by olemis

Replying to osimons:

Hmm. More worrying is the fact that latest 1.0.2dev now leaves a stray functional server process running after tests terminate. I need to kill it manually every time.

that happens to me sometimes running it inside PyDev . It's annoying , yes .

Nevertheless I find more worrying the fact that test cases are not isolated . I mean , if tickets and other stuff is not appropriately torn down then these might interfere with assertions in subsequent test cases , thus polluting test reports .

[...]

comment:9 in reply to: ↑ 7 Changed 16 months ago by olemis

Replying to osimons:

Following [13203] at least the server terminates consistently, but RuntimeWarning remains. However that is now just a Trac problem, and no longer a direct concern for the RPC plugin.

I'll take a look into this , JIC ;)

comment:10 in reply to: ↑ 8 ; follow-up: Changed 16 months ago by osimons

Replying to olemis:

Nevertheless I find more worrying the fact that test cases are not isolated . I mean , if tickets and other stuff is not appropriately torn down then these might interfere with assertions in subsequent test cases , thus polluting test reports .

Correct. Let's keep it at 0 failures/errors and it won't be a problem ;-) As for the larger issue of fixing the functional test infrastructure we reuse, I think I'll leave that for another day...

comment:11 in reply to: ↑ 10 Changed 16 months ago by olemis

Replying to osimons:

Replying to olemis:

Nevertheless I find more worrying the fact that test cases are not isolated . I mean , if tickets and other stuff is not appropriately torn down then these might interfere with assertions in subsequent test cases , thus polluting test reports .

Correct. Let's keep it at 0 failures/errors and it won't be a problem ;-) As for the larger issue of fixing the functional test infrastructure we reuse, I think I'll leave that for another day...

JFTR , in recent changesets committed onto this fork I've been trying an approach consisting in leaving 'some' traces of previous test case activity , but still keeping the test suite immune to previous noise . However that's partially possible due to the isolation provided by product environments i.e. there will be no interference among product data as long as unique prefixes will be allocated .

Maybe something similar may be done too in tracrpc.tests

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.