You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by as...@apache.org on 2013/07/12 10:51:54 UTC
svn commit: r1502480 - in
/bloodhound/trunk/bloodhound_relations/bhrelations: api.py tests/web_ui.py
web_ui.py
Author: astaric
Date: Fri Jul 12 08:51:54 2013
New Revision: 1502480
URL: http://svn.apache.org/r1502480
Log:
Handling of cases when resource id cannot be constructed from resource_instance.
Refs: #588
Modified:
bloodhound/trunk/bloodhound_relations/bhrelations/api.py
bloodhound/trunk/bloodhound_relations/bhrelations/tests/web_ui.py
bloodhound/trunk/bloodhound_relations/bhrelations/web_ui.py
Modified: bloodhound/trunk/bloodhound_relations/bhrelations/api.py
URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/api.py?rev=1502480&r1=1502479&r2=1502480&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_relations/bhrelations/api.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/api.py Fri Jul 12 08:51:54 2013
@@ -445,6 +445,9 @@ class ResourceIdSerializer(object):
#TODO: temporary workaround for the ticket specific behavior
#change it to generic resource behaviour
ticket = resource_instance
+ if ticket.id is None:
+ raise ValueError("Cannot get resource id for ticket "
+ "that does not exist yet.")
nbhprefix = ticket["product"]
resource_full_id = cls.RESOURCE_ID_DELIMITER.join(
Modified: bloodhound/trunk/bloodhound_relations/bhrelations/tests/web_ui.py
URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/tests/web_ui.py?rev=1502480&r1=1502479&r2=1502480&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_relations/bhrelations/tests/web_ui.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/tests/web_ui.py Fri Jul 12 08:51:54 2013
@@ -120,7 +120,6 @@ class ResolveTicketIntegrationTestCase(B
t1 = self._insert_and_load_ticket("Foo")
t2 = self._insert_and_load_ticket("Bar")
self.relations_system.add(t2, t1, 'duplicateof')
- self.req.args['id'] = t2.id
self.req.path_info = '/ticket/%d' % t2.id
data = self.process_request()
@@ -141,6 +140,15 @@ class ResolveTicketIntegrationTestCase(B
self.assertEqual(t2['status'], 'closed')
self.assertEqual(t2['resolution'], 'duplicate')
+ def test_post_process_request_does_not_break_ticket(self):
+ t1 = self._insert_and_load_ticket("Foo")
+ self.req.path_info = '/ticket/%d' % t1.id
+ self.process_request()
+
+ def test_post_process_request_does_not_break_newticket(self):
+ self.req.path_info = '/newticket'
+ self.process_request()
+
def resolve_as_duplicate(self, ticket, duplicate_id):
self.req.method = 'POST'
self.req.path_info = '/ticket/%d' % ticket.id
@@ -154,8 +162,10 @@ class ResolveTicketIntegrationTestCase(B
return self.process_request()
def process_request(self):
- template, data, content_type = \
- TicketModule(self.env).process_request(self.req)
+ ticket_module = TicketModule(self.env)
+
+ ticket_module.match_request(self.req)
+ template, data, content_type = ticket_module.process_request(self.req)
template, data, content_type = \
RelationManagementModule(self.env).post_process_request(
self.req, template, data, content_type)
Modified: bloodhound/trunk/bloodhound_relations/bhrelations/web_ui.py
URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_relations/bhrelations/web_ui.py?rev=1502480&r1=1502479&r2=1502480&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_relations/bhrelations/web_ui.py (original)
+++ bloodhound/trunk/bloodhound_relations/bhrelations/web_ui.py Fri Jul 12 08:51:54 2013
@@ -134,10 +134,13 @@ class RelationManagementModule(Component
if 'ticket' in data:
ticket = data['ticket']
rls = RelationsSystem(self.env)
- resid = ResourceIdSerializer.get_resource_id_from_instance(
- self.env, ticket)
+ try:
+ resid = ResourceIdSerializer.get_resource_id_from_instance(
+ self.env, ticket)
+ except ValueError:
+ resid = None
- if rls.duplicate_relation_type:
+ if rls.duplicate_relation_type and resid is not None:
duplicate_relations = \
rls._select_relations(resid, rls.duplicate_relation_type)
if duplicate_relations: