Modify

Opened 5 years ago

Closed 5 years ago

#5268 closed defect (fixed)

ticket.status.delete() and ticket.status.update() are broken

Reported by: thijs Owned by: osimons
Priority: normal Component: XmlRpcPlugin
Severity: normal Keywords:
Cc: thijs Trac Release: 0.11

Description

Consider the following code:

# get existing statuses from trac
statuses = self.proxy.ticket.status.getAll()
print(statuses)
        
# remove existing statuses from trac if necessary
if len(statuses) > 0:
    for status in statuses:
        self.proxy.ticket.status.delete(status)

This prints the following error on my client:

['accepted', 'assigned', 'closed', 'new', 'reopened']
2009-05-22 07:06:33,768 - A fault occurred!
2009-05-22 07:06:33,773 - Fault code: 2
2009-05-22 07:06:33,773 - Fault string: '__init__() takes exactly 2 arguments (3 given)' while executing 'ticket.status.delete()'

And Trac 0.11.4 throws this error:

07:06:33 Trac[web_ui] ERROR: __init__() takes exactly 2 arguments (3 given)
07:06:33 Trac[web_ui] ERROR: Traceback (most recent call last):
  File "/Users/thijstriemstra/jira2trac/test/plugins/tracrpc/tracrpc/web_ui.py", line 60, in process_request
    result = XMLRPCSystem(self.env).get_method(method)(req, args)
  File "/Users/thijstriemstra/Sites/jira2trac/test/plugins/tracrpc/tracrpc/api.py", line 85, in __call__
    result = self.callable(req, *args)
  File "/Users/thijstriemstra/Sites/jira2trac/test/plugins/tracrpc/tracrpc/ticket.py", line 260, in delete
    cls(self.env, name).delete()
TypeError: __init__() takes exactly 2 arguments (3 given)

Attachments (0)

Change History (4)

comment:1 Changed 5 years ago by thijs

  • Summary changed from __init__() takes exactly 2 arguments (3 given) while executing 'ticket.status.delete()' to ticket.status.delete() and ticket.status.update() are broken

I'm having the same problem with ticket.status.update() now, so renaming the ticket.

comment:2 Changed 5 years ago by osimons

  • Owner changed from athomas to osimons

With Trac 0.11, 'status' is something that is provided by the active workflow. Changing it through xmlrpc no longer makes sense, and 'status' in enum table is no longer used (nor does Trac provide an Admin page to update them).

I think all 'ticket.status' methods need to be removed from the XmlRpcPlugin in trunk.

comment:3 Changed 5 years ago by osimons

Actually, ticket.getAvailableActions(ticket_id) is of somewhat limited use as it only provides read access to possible ticket actions without saying what that implies for field changes. Examples:

  • 'resolve' should require a 'resolution' on update with 'status' implied by action
  • 'reassign' should require new 'owner' and again 'status' implied by action

I suppose until there is better workflow support in the XmlRpcPlugin, we should leave status.get() and status.getAll() and just allow updating fields directly as we do now (bypassing workflow). However, the other status methods should really be removed (create, update, delete).

comment:4 Changed 5 years ago by osimons

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

Fixed as part of [6045].

Add Comment

Modify Ticket

Action
as closed .
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from osimons. Next status will be '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.