コード例 #1
0
ファイル: __init__.py プロジェクト: adamcharnock/repose
class User(Resource):
    id = fields.Integer()
    name = fields.String()
    posts = fields.ManagedCollection(Post)
    profile = fields.Embedded(Profile)

    objects = Manager()
    with_posts = Manager(filter=lambda u: u.posts.count() > 0)

    class Meta:
        endpoint = '/user/{user_id}'
        endpoint_list = '/user'
コード例 #2
0
 def test_filtering(self):
     from repose.managers import Manager
     self.manager = Manager(filter=lambda u: u.id == 2)
     self.manager.contribute_api(self.api)
     self.manager.contribute_to_class(User)
     self.manager.contribute_to_class(User)
     user2 = USER_DATA.copy()
     user2['id'] = 2
     self.api.add_response('GET', '/user', [USER_DATA, user2])
     self.assertEqual(self.manager.count(), 1)
     self.assertEqual(len(self.manager.all()), 1)
コード例 #3
0
ファイル: resources.py プロジェクト: adamcharnock/repose
    def setup_managers(cls, resource, dct):
        """Setup the managers on a resource

        Pass a reference to the resource class to all attached managers,
        and create a default manager if none are explicitly defined
        """
        has_custom_manager = False
        managers = []
        for k, v in dct.items():
            if isinstance(v, Manager):
                v.contribute_to_class(resource)
                has_custom_manager = True
                managers.append(v)

        # If we don't have a custom manager, then add the
        # default manager
        if not has_custom_manager:
            manager = Manager()
            manager.contribute_to_class(resource)
            resource.objects = manager
            managers.append(manager)

        resource._managers = managers
コード例 #4
0
 def setUp(self):
     from repose.managers import Manager
     super(ManagerTestCase, self).setUp()
     self.manager = Manager()
     self.manager.contribute_api(self.api)
     self.manager.contribute_to_class(User)