def test_propagate_all(self): """Test clean propagation of all ACL entries.""" with factories.single_commit(): person = factories.PersonFactory() task = wf_factories.TaskGroupTaskFactory() audit = factories.AuditFactory() factories.RelationshipFactory( source=audit, destination=audit.program, ) acl_ids = [ factories.AccessControlListFactory( ac_role=self.roles["Program"]["Program Editors"], object=audit.program, person=person, ).id ] factories.AccessControlListFactory( ac_role=self.roles["Workflow"]["Workflow Member"], object=task.workflow, person=person, ) # propagate all non WF entries propagation._propagate(acl_ids) self.assertEqual(all_models.AccessControlList.query.count(), 4) all_models.AccessControlList.query.filter( all_models.AccessControlList.parent_id.isnot(None)).delete() self.assertEqual(all_models.AccessControlList.query.count(), 2) # propagate all including WF entries propagation.propagate_all() self.assertEqual(all_models.AccessControlList.query.count(), 6)
def test_propagate_all(self): """Test clean propagation of all ACL entries.""" with factories.single_commit(): person = factories.PersonFactory() task = wf_factories.TaskGroupTaskFactory() audit = factories.AuditFactory() factories.RelationshipFactory( source=audit, destination=audit.program, ) acl_ids = [ factories.AccessControlListFactory( ac_role=self.roles["Program"]["Program Editors"], object=audit.program, person=person, ).id ] factories.AccessControlListFactory( ac_role=self.roles["Workflow"]["Workflow Member"], object=task.workflow, person=person, ) # propagate all non WF entries propagation._propagate(acl_ids) self.assertEqual(all_models.AccessControlList.query.count(), 4) all_models.AccessControlList.query.filter( all_models.AccessControlList.parent_id.isnot(None) ).delete() self.assertEqual(all_models.AccessControlList.query.count(), 2) # propagate all including WF entries propagation.propagate_all() self.assertEqual(all_models.AccessControlList.query.count(), 6)
def test_creating_missing_acl_entries(self): """Test clean propagation of all ACL entries.""" with factories.single_commit(): audit = factories.AuditFactory() wf_factories.TaskGroupTaskFactory() factories.RelationshipFactory(source=audit, destination=audit.program) propagation.propagate_all() self.assertEqual(all_models.AccessControlList.query.count(), 25) all_models.AccessControlList.query.delete() db.session.commit() self.assertEqual(all_models.AccessControlList.query.count(), 0) propagation.propagate_all() self.assertEqual(all_models.AccessControlList.query.count(), 25)
def test_creating_missing_acl_entries(self): """Test clean propagation of all ACL entries.""" with factories.single_commit(): audit = factories.AuditFactory() wf_factories.TaskGroupTaskFactory() factories.RelationshipFactory(source=audit, destination=audit.program) propagation.propagate_all() self.assertEqual(all_models.AccessControlList.query.count(), 25) all_models.AccessControlList.query.delete() db.session.commit() self.assertEqual(all_models.AccessControlList.query.count(), 0) propagation.propagate_all() self.assertEqual(all_models.AccessControlList.query.count(), 25)
def test_propagate_all(self): """Test clean propagation of all ACL entries.""" with factories.single_commit(): wf_factories.TaskGroupTaskFactory() audit = factories.AuditFactory() factories.RelationshipFactory( source=audit, destination=audit.program, ) acl_ids = [acl.id for acl in audit.program._access_control_list] propagation._propagate(acl_ids, self.user_id) self.assertEqual(all_models.AccessControlList.query.count(), 17) propagation.propagate_all() self.assertEqual(all_models.AccessControlList.query.count(), 25)
def test_propagate_all(self): """Test clean propagation of all ACL entries.""" with factories.single_commit(): wf_factories.TaskGroupTaskFactory() audit = factories.AuditFactory() factories.RelationshipFactory( source=audit, destination=audit.program, ) acl_ids = [acl.id for acl in audit.program._access_control_list] propagation._propagate(acl_ids, self.user_id) self.assertEqual(all_models.AccessControlList.query.count(), 17) propagation.propagate_all() self.assertEqual(all_models.AccessControlList.query.count(), 25)
def test_propagate_all(self): """Test clean propagation of all ACL entries.""" with factories.single_commit(): person = factories.PersonFactory() audit = factories.AuditFactory() factories.RelationshipFactory( source=audit, destination=audit.program, ) acl_ids = [ factories.AccessControlListFactory( ac_role=self.roles["Program"]["Program Editors"], object=audit.program, person=person, ).id ] propagation._propagate(acl_ids) self.assertEqual(all_models.AccessControlList.query.count(), 3) propagation._delete_all_propagated_acls() self.assertEqual(all_models.AccessControlList.query.count(), 1) propagation.propagate_all() self.assertEqual(all_models.AccessControlList.query.count(), 3)