コード例 #1
0
    def test_requests_view_handles_ajax_requests_with_priority_param(self):
        '''
        Test requests view handles ajax requests with priority
        param correctly and sends requests ordered first by priority and
        then by timestamp.
        '''
        # Priority with value 1 == sort by priority descending
        db_requests = Request.objects.all().order_by(
            '-priority', '-timestamp')[:10]

        for db_r in db_requests:
            db_r.timestamp = to_ecma_date_string(db_r.timestamp)

        response = self.send_ajax_request(dict(id=1, priority=1))

        data = self.validate_recieved_json_response(response)

        requests = json.loads(data['requests'])
        for r, db_r in zip(requests, db_requests):
            self.assertEqual(r['fields']['timestamp'], db_r.timestamp)

        db_requests = Request.objects.all().order_by(
            'priority', '-timestamp')[:10]

        for db_r in db_requests:
            db_r.timestamp = to_ecma_date_string(db_r.timestamp)

        response = self.send_ajax_request(dict(id=1, priority=0))

        data = self.validate_recieved_json_response(response)

        requests = json.loads(data['requests'])
        for r, db_r in zip(requests, db_requests):
            self.assertEqual(r['fields']['timestamp'], db_r.timestamp)
コード例 #2
0
ファイル: views.py プロジェクト: yevhen-m/FortyTwoTestTask
def requests(request):
    priority = request.GET.get('priority')
    if priority is not None:
        try:
            priority = int(priority)
        except (ValueError, TypeError):
            priority = 1

        order_by = '{}priority'.format('-' if priority else '')
        r_list = Request.objects.all().order_by(order_by, '-timestamp')[:10]
    else:
        r_list = Request.objects.all()[:10]

    if request.is_ajax():
        page_request_id = int(request.GET['id'])
        new_requests = r_list[0].id - page_request_id
        requests = serializers.serialize('json', r_list)
        # Django serializes datetime objects according to ecma 262
        return HttpResponse(
            json.dumps({
                'new_requests': new_requests,
                'requests': requests
            }),
            content_type='application/json'
        )
    else:
        for r in r_list:
            # Need to display data in this format
            r.timestamp = to_ecma_date_string(r.timestamp)
        return render(request, 'hello/requests.html', {'requests': r_list,
                                                       'priority': priority})
コード例 #3
0
    def test_requests_view_shows_ten_most_recent_requests(self):
        '''
        Test requests view shows ten most recent requets.
        '''
        for _ in xrange(20):
            self.client.get('home')
        # this response is rendered with 10 previous requests
        response = self.client.get(self.url)
        context_requests = response.context['requests']

        self.assertEqual(len(context_requests), 10)

        db_requests = Request.objects.all().order_by('-timestamp')
        # Need to convert timestamps because I convert them for requests
        # passed into the context
        for db_request in db_requests:
            db_request.timestamp = to_ecma_date_string(db_request.timestamp)

        for context_request, db_request in zip(context_requests, db_requests):
            self.assertEqual(
                context_request.timestamp,
                db_request.timestamp
            )
            self.assertEqual(context_request.id, db_request.id)
コード例 #4
0
ファイル: __init__.py プロジェクト: timsavage/jsrn
 def to_json(self, value):
     if value is None:
         return None
     if isinstance(value, datetime.datetime):
         datetimeutil.to_ecma_date_string(value, self.assume_local)
コード例 #5
0
ファイル: datetimeutil.py プロジェクト: timsavage/jsrn
 def test_aware_datetime(self):
     dt = datetime.datetime(2013, 7, 13, 16, 54, 46, 123000, datetimeutil.utc)
     actual = datetimeutil.to_ecma_date_string(dt, False)
     self.assertEqual("2013-07-13T16:54:46.123Z", actual)
コード例 #6
0
ファイル: datetimeutil.py プロジェクト: timsavage/jsrn
 def test_naive_datetime(self):
     dt = datetime.datetime(2013, 7, 13, 16, 54, 46, 123000)
     actual = datetimeutil.to_ecma_date_string(dt, False)  # assume UTC to simplify this particular test
     self.assertEqual("2013-07-13T16:54:46.123Z", actual)