def test_save_if_have_end_time(self):

        date = datetime.datetime(2016, 1, 1, 12, 0, 3, tzinfo=pytz.UTC)
        obj = models.Request(path='/some/path/', method='get', end_time=date)
        obj.save()
        self.assertEqual(obj.end_time, date)
        self.assertEqual(obj.time_taken, 3000.0)
    def test_save_if_have_body(self):

        obj = models.Request(path='/some/path/',
                             method='get',
                             body='some text')
        obj.save()
        self.assertEqual(obj.body, 'some text')
    def test_greedy_garbage_collect(self):

        for x in range(3):
            obj = models.Request(path='/', method='get')
            obj.save()
        self.assertEqual(models.Request.objects.count(), 4)
        SilkyConfig().SILKY_MAX_RECORDED_REQUESTS_CHECK_PERCENT = 50
        SilkyConfig().SILKY_MAX_RECORDED_REQUESTS = 3
        models.Request.garbage_collect(force=True)
        self.assertGreater(models.Request.objects.count(), 0)
Exemple #4
0
 def construct_request_model(self):
     body, raw_body = self.body()
     query_params = self.query_params()
     path = self.request.path
     resolved = resolve(path)
     namespace = resolved.namespace
     view_name = resolved.url_name
     if namespace:
         view_name = namespace + ':' + view_name
     request_model = models.Request(path=path,
                                    encoded_headers=self.encoded_headers(),
                                    method=self.request.method,
                                    query_params=query_params,
                                    view_name=view_name,
                                    body=body)
     # Text fields are encoded as UTF-8 in Django and hence will try to coerce
     # anything to we pass to UTF-8. Some stuff like binary will fail.
     try:
         request_model.raw_body = raw_body
     except UnicodeDecodeError:
         Logger.debug('NYI: Binary request bodies')  # TODO
     Logger.debug('Created new request model with pk %s' % request_model.pk)
     return request_model
 def test_prof_file_default_storage(self):
     obj = models.Request(path='/some/path/', method='get')
     self.assertEqual(obj.prof_file.storage.__class__,
                      ProfilerResultStorage)
    def test_save_if_have_no_end_time(self):

        obj = models.Request(path='/some/path/', method='get')
        self.assertEqual(obj.time_taken, None)
        obj.save()
        self.assertEqual(obj.time_taken, None)
    def test_save_if_have_no_raw_body(self):

        obj = models.Request(path='/some/path/', method='get')
        self.assertEqual(obj.raw_body, '')
        obj.save()
        self.assertEqual(obj.raw_body, '')