Exemple #1
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)
Exemple #2
0
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'
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #5
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)
Exemple #6
0
class ManagerTestCase(TestCase):

    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)

    def test_get(self):
        self.api.add_response('GET', '/user/1', USER_DATA)
        user = self.manager.get(user_id=1)
        self.assertEqual(user.id, 1)
        self.assertEqual(user.name, 'Test User')

    def test_all(self):
        self.manager.contribute_to_class(User)
        self.api.add_response('GET', '/user', [USER_DATA])
        users = self.manager.all()
        self.assertEqual(len(users), 1)
        self.assertEqual(users[0]['id'], 1)

    def test_count(self):
        self.manager.contribute_to_class(User)
        self.api.add_response('GET', '/user', [USER_DATA])
        self.assertEqual(self.manager.count(), 1)

    def test_iter(self):
        self.manager.contribute_to_class(User)
        self.api.add_response('GET', '/user', [USER_DATA])
        self.assertEqual(len([u for u in self.manager]), 1)

    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)