@@ -491,6 +491,10 @@ def setUpTestData(cls):
491491 cls .post_data = {'start_offset' : 0 , 'end_offset' : 1 , 'label' : main_project_label .id }
492492 cls .num_entity_of_project_member = SequenceAnnotation .objects .filter (document = main_project_doc ,
493493 user = project_member ).count ()
494+ cls .num_entity_of_another_project_member = SequenceAnnotation .objects .filter (
495+ document = main_project_doc ,
496+ user = another_project_member ).count ()
497+ cls .main_project = main_project
494498
495499 def test_returns_annotations_to_project_member (self ):
496500 self .client .login (username = self .project_member_name ,
@@ -510,6 +514,15 @@ def test_do_not_return_annotations_of_another_project_member(self):
510514 response = self .client .get (self .url , format = 'json' )
511515 self .assertEqual (len (response .data ), self .num_entity_of_project_member )
512516
517+ def test_returns_annotations_of_another_project_member_if_collaborative_project (self ):
518+ self ._patch_project (self .main_project , 'collaborative_annotation' , True )
519+
520+ self .client .login (username = self .project_member_name ,
521+ password = self .project_member_pass )
522+ response = self .client .get (self .url , format = 'json' )
523+ self .assertEqual (len (response .data ),
524+ self .num_entity_of_project_member + self .num_entity_of_another_project_member )
525+
513526 def test_allows_project_member_to_create_annotation (self ):
514527 self .client .login (username = self .project_member_name ,
515528 password = self .project_member_pass )
@@ -522,6 +535,17 @@ def test_disallows_non_project_member_to_create_annotation(self):
522535 response = self .client .post (self .url , format = 'json' , data = self .post_data )
523536 self .assertEqual (response .status_code , status .HTTP_403_FORBIDDEN )
524537
538+ def _patch_project (self , project , attribute , value ):
539+ old_value = getattr (project , attribute , None )
540+ setattr (project , attribute , value )
541+ project .save ()
542+
543+ def cleanup_project ():
544+ setattr (project , attribute , old_value )
545+ project .save ()
546+
547+ self .addCleanup (cleanup_project )
548+
525549
526550class TestAnnotationDetailAPI (APITestCase ):
527551
0 commit comments