Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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))
Example #4
0
    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))
Example #5
0
    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))
Example #6
0
    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))
Example #7
0
 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)
Example #8
0
 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)