def test_can_get_limiter_by_id(self):
        limiter = LimiterFactory.create()

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter.id).to_equal(limiter.id)

        invalid_limiter = Limiter.by_id(-1, self.db)
        expect(invalid_limiter).to_be_null()
    def test_can_delete_one_limiter(self):
        limiter = LimiterFactory.create()

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter.id).to_equal(limiter.id)

        affected = Limiter.delete(limiter.id, self.db)
        expect(affected).to_equal(1)

        deleted_limiter = Limiter.by_id(limiter.id, self.db)
        expect(deleted_limiter).to_be_null()
Exemple #3
0
    def test_can_delete_limiter_as_superuser(self):
        self.db.query(Limiter).delete()
        limiter = LimiterFactory.create()
        self.db.query(User).delete()
        user = UserFactory(email='*****@*****.**', is_superuser=True)

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).not_to_be_null()

        response = yield self.authenticated_fetch('/limiters/%d' % limiter.id,
                                                  user_email=user.email,
                                                  method='DELETE')

        expect(response.code).to_equal(204)
        expect(response.body).to_length(0)

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).to_be_null()
    def test_can_delete_limiter_as_superuser(self):
        self.db.query(Limiter).delete()
        limiter = LimiterFactory.create()
        self.db.query(User).delete()
        user = UserFactory(email='*****@*****.**', is_superuser=True)

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).not_to_be_null()

        response = yield self.authenticated_fetch(
            '/limiters/%d' % limiter.id, user_email=user.email,
            method='DELETE'
        )

        expect(response.code).to_equal(204)
        expect(response.body).to_length(0)

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).to_be_null()
Exemple #5
0
    def test_cant_delete_limiter_as_normal_user(self):
        self.db.query(Limiter).delete()
        limiter = LimiterFactory.create()
        self.db.query(User).delete()
        user = UserFactory(email='*****@*****.**', is_superuser=False)

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).not_to_be_null()

        try:
            yield self.authenticated_fetch('/limiters/%d' % limiter.id,
                                           user_email=user.email,
                                           method='DELETE')
        except HTTPError, e:
            expect(e).not_to_be_null()
            expect(e.code).to_equal(401)
            expect(e.response.reason).to_be_like('Unauthorized')
    def test_cant_delete_limiter_as_normal_user(self):
        self.db.query(Limiter).delete()
        limiter = LimiterFactory.create()
        self.db.query(User).delete()
        user = UserFactory(email='*****@*****.**', is_superuser=False)

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).not_to_be_null()

        try:
            yield self.authenticated_fetch(
                '/limiters/%d' % limiter.id, user_email=user.email,
                method='DELETE'
            )
        except HTTPError, e:
            expect(e).not_to_be_null()
            expect(e.code).to_equal(401)
            expect(e.response.reason).to_be_like('Unauthorized')
Exemple #7
0
    def delete(self, limiter_id=None):
        if not self.validate_superuser():
            return

        if not limiter_id:
            self.set_status(400)
            self.write_json({'reason': 'Invalid data', 'description': self._('Invalid data')})
            return

        limiter = Limiter.by_id(limiter_id, self.db)

        if not limiter or not limiter.id:
            self.set_status(404)
            self.write_json({'reason': 'Not Found', 'description': self._('Not Found')})
            return

        Limiter.delete(limiter.id, self.db)

        yield self.cache.remove_domain_limiters_key()

        self.set_status(204)
        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).not_to_be_null()

        try:
            yield self.authenticated_fetch(
                '/limiters/%d' % limiter.id, user_email=user.email,
                method='DELETE'
            )
        except HTTPError, e:
            expect(e).not_to_be_null()
            expect(e.code).to_equal(401)
            expect(e.response.reason).to_be_like('Unauthorized')
        else:
            assert False, 'Should not have got this far'

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).not_to_be_null()

    @gen_test
    def test_can_delete_limiter_as_superuser(self):
        self.db.query(Limiter).delete()
        limiter = LimiterFactory.create()
        self.db.query(User).delete()
        user = UserFactory(email='*****@*****.**', is_superuser=True)

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).not_to_be_null()

        response = yield self.authenticated_fetch(
            '/limiters/%d' % limiter.id, user_email=user.email,
            method='DELETE'
Exemple #9
0
        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).not_to_be_null()

        try:
            yield self.authenticated_fetch('/limiters/%d' % limiter.id,
                                           user_email=user.email,
                                           method='DELETE')
        except HTTPError, e:
            expect(e).not_to_be_null()
            expect(e.code).to_equal(401)
            expect(e.response.reason).to_be_like('Unauthorized')
        else:
            assert False, 'Should not have got this far'

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).not_to_be_null()

    @gen_test
    def test_can_delete_limiter_as_superuser(self):
        self.db.query(Limiter).delete()
        limiter = LimiterFactory.create()
        self.db.query(User).delete()
        user = UserFactory(email='*****@*****.**', is_superuser=True)

        loaded_limiter = Limiter.by_id(limiter.id, self.db)
        expect(loaded_limiter).not_to_be_null()

        response = yield self.authenticated_fetch('/limiters/%d' % limiter.id,
                                                  user_email=user.email,
                                                  method='DELETE')