Exemple #1
0
    def test_invalidate_state(self):
        request = generate_request()
        columns = generate_columns()
        resource = StatefulResource()

        post = {}
        form = YaatValidatorForm(post, request=request, columns=columns, resource=resource)
        self.assertTrue(form.is_valid())
        self.assertIn(form.session_key(resource), request.session)

        form.invalidate_state()
        self.assertNotIn(form.session_key(resource), request.session)
Exemple #2
0
    def test_stateful_init(self):
        request = generate_request()
        columns = generate_columns()
        resource = StatefulResource()

        post = {}
        form = YaatValidatorForm(post, request=request, columns=columns, resource=resource)
        self.assertTrue(form.is_valid())
        self.assertEqual(
            request.session[form.session_key(resource)],
            {'limit': form.fields['limit'].initial, 'offset': form.fields['offset'].initial}
        )

        post = {'limit': form.fields['limit'].initial, 'offset': form.fields['offset'].initial + 1, 'headers': []}  # Without "headers" the state resets itself
        form = YaatValidatorForm(post, request=request, columns=columns, resource=resource)
        self.assertTrue(form.is_valid())
        self.assertEqual(
            request.session[form.session_key(resource)],
            {'limit': form.fields['limit'].initial, 'offset': form.fields['offset'].initial + 1}
        )
Exemple #3
0
    def test_reset_offset_empty_page(self):
        request, first_page = self.post({})
        limit = len(first_page['rows'])
        item_count = Item.objects.count()
        self.assertGreater(limit, 0)
        pages = math.ceil(item_count / limit)

        for offset in range(pages+10):  # Over-iterate pages
            request, data = self.post({'offset': offset+1})  # Page index is not zero-based
            if offset >= 2:  # 3rd page does not exists. Resource must always return with the 1st page
                self.assertEqual(data, first_page)

        self.assertEqual(
            request.session[YaatValidatorForm.session_key(self.RESOURCE)]['offset'],
            YaatValidatorForm.base_fields['offset'].initial
        )
Exemple #4
0
 def test_session_key(self):
     resource = StatefulResource()
     self.assertEqual(YaatValidatorForm.session_key(resource), 'yaat_init_state_' + StatefulResource.Meta.resource_name)