def test_get_entities_for_sanity(self): ''' Test if correct entities are returned. ''' lst = workflow.get_entities_under_path('/link/', self.registry) self.assertTrue(self.resources[2] in lst) self.assertTrue(len(lst) == 1) lst = workflow.get_entities_under_path('/bar/', self.registry) self.assertTrue(self.resources[0] in lst) self.assertTrue(self.resources[1] in lst) self.assertTrue(len(lst) == 2)
def post(self, key): if key == '' or key[-1] != '/': key += '/' if len(self.get_arguments('action')) > 0: # action try: action = self.parse_action() entities = workflow.get_entities_under_path(key, self.registry) for entity in entities: workflow.action_entity(entity, action, self.registry) self.response(200, self.registry.get_default_type(), None) except AttributeError as attr: raise HTTPError(400, str(attr)) elif len(self.parse_entities()) == 0: # create resource (&links) try: entity = self.parse_entity() workflow.create_entity(workflow.create_id(entity.kind), entity, self.registry) self.response(201, self.registry.get_default_type(), {'Location': self.request.protocol + '://' + self.request.host + entity.identifier}) except AttributeError as attr: raise HTTPError(400, str(attr)) elif len(self.parse_entities()) > 0: # update try: mixin = self.registry.get_category(key) new_entities = self.parse_entities() old_entities = workflow.get_entities_under_path(key, self.registry) workflow.update_collection(mixin, old_entities, new_entities, self.registry) self.response(200, self.registry.get_default_type(), None) except AttributeError as attr: raise HTTPError(400, str(attr))
def get(self, key): # retrieve (filter) try: if key == '' or key[-1] != '/': key += '/' categories, attributes = self.parse_filter() entities = workflow.get_entities_under_path(key, self.registry) result = workflow.filter_entities(entities, categories, attributes) self.render_entities(result, key) except AttributeError as attr: raise HTTPError(400, str(attr))
def put(self, key): # replace try: if key == '' or key[-1] != '/': key += '/' mixin = self.registry.get_category(key) new_entities = self.parse_entities() old_entities = workflow.get_entities_under_path(key, self.registry) workflow.replace_collection(mixin, old_entities, new_entities, self.registry) self.response(200, self.registry.get_default_type(), None) except AttributeError as attr: raise HTTPError(400, str(attr))
def delete(self, key): if key == '' or key[-1] != '/': key += '/' if len(self.parse_entities()) == 0: # delete entities entities = workflow.get_entities_under_path(key, self.registry) for entity in entities: workflow.delete_entity(entity, self.registry) self.response(200, self.registry.get_default_type(), None) elif len(self.parse_entities()) > 0: # remove from collection try: mixin = self.registry.get_category(key) entities = self.parse_entities() workflow.delete_from_collection(mixin, entities, self.registry) self.response(200, self.registry.get_default_type(), None) except AttributeError as attr: raise HTTPError(400, str(attr))
def test_get_entities_for_success(self): ''' Tests retrieval of resources. ''' lst = workflow.get_entities_under_path('/', self.registry) self.assertTrue(self.resources[0] in lst)