Ejemplo n.º 1
0
    def test_req_count(self):
        self.assertEqual((yield get_req_count(self.redis, 'test', '1234')), 0)

        yield inc_req_count(self.redis, 'test', '1234')
        self.assertEqual((yield get_req_count(self.redis, 'test', '1234')), 1)

        yield dec_req_count(self.redis, 'test', '1234')
        self.assertEqual((yield get_req_count(self.redis, 'test', '1234')), 0)

        yield set_req_count(self.redis, 'test', '1234', 3)
        self.assertEqual((yield get_req_count(self.redis, 'test', '1234')), 3)
Ejemplo n.º 2
0
    def test_requests(self):
        msgs = self.patch_log()
        k = pending_key('test')

        self.assertEqual(
            (yield get_req_count(self.app.redis, 'test', '1234')), 0)

        pop_all(msgs)
        resp = yield self.post('/requests/', {
            'intervals': [30, 90],
            'request': {
                'url': 'http://www.example.org',
                'method': 'GET',
            }
        }, headers={'X-Owner-ID': '1234'})

        self.assertEqual(resp.code, http.OK)
        self.assertEqual((yield resp.content()), json.dumps({}))

        self.assertEqual(pop_all(msgs), [
            ("Adding request to pending set", {
                'owner_id': '1234',
                'timestamp': 10,
                'intervals': [30, 90],
                'request': {
                    'url': 'http://www.example.org',
                    'method': 'GET',
                },
            })
        ])

        self.assertEqual(
            (yield get_req_count(self.app.redis, 'test', '1234')), 1)

        self.assertEqual((yield zitems(self.app.redis, k)), [
            (self.time + 30, {
                'attempts': 0,
                'timestamp': 10,
                'owner_id': '1234',
                'intervals': [30, 90],
                'request': {
                    'url': 'http://www.example.org',
                    'method': 'GET',
                }
            }),
        ])
Ejemplo n.º 3
0
    def test_retry_no_dec_req_count_on_reattempt(self):
        worker = yield self.mk_worker()
        srv = yield ToyServer.from_test(self)

        @srv.app.route('/')
        def route(req):
            req.setResponseCode(500)

        yield set_req_count(worker.redis, 'test', '1234', 3)

        yield worker.retry({
            'owner_id': '1234',
            'timestamp': 5,
            'attempts': 0,
            'intervals': [10, 20],
            'request': {
                'url': srv.url,
                'method': 'GET'
            }
        })

        self.assertEqual(
            (yield get_req_count(worker.redis, 'test', '1234')), 3)
Ejemplo n.º 4
0
 def req_limit_reached(self, owner_id):
     count = yield get_req_count(self.redis, self.prefix, owner_id)
     returnValue(count >= self.config.request_limit)