File: tests.py

package info (click to toggle)
drf-extensions 0.8.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,308 kB
  • sloc: python: 7,421; makefile: 11
file content (42 lines) | stat: -rw-r--r-- 1,417 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import contextlib
try:
    from unittest import mock
except ImportError:
    import mock

from django.test import TestCase

from rest_framework_extensions.utils import prepare_header_name, get_rest_framework_version


@contextlib.contextmanager
def parsed_version(version):
    with mock.patch('rest_framework.VERSION', version):
        yield get_rest_framework_version()


class TestPrepareHeaderName(TestCase):
    def test_upper(self):
        self.assertEqual(prepare_header_name('Accept'), 'HTTP_ACCEPT')

    def test_replace_dash_with_underscores(self):
        self.assertEqual(
            prepare_header_name('Accept-Language'), 'HTTP_ACCEPT_LANGUAGE')

    def test_strips_whitespaces(self):
        self.assertEqual(
            prepare_header_name('  Accept-Language  '), 'HTTP_ACCEPT_LANGUAGE')

    def test_adds_http_prefix(self):
        self.assertEqual(
            prepare_header_name('Accept-Language'), 'HTTP_ACCEPT_LANGUAGE')

    def test_get_rest_framework_version_exotic_version(self):
        """See <https://github.com/chibisov/drf-extensions/pull/198>"""
        with parsed_version('1.2a2') as version:
            self.assertEqual(version, (1, 2))

    def test_get_rest_framework_version_normal_version(self):
        """See <https://github.com/chibisov/drf-extensions/pull/198>"""
        with parsed_version('3.14.16') as version:
            self.assertEqual(version, (3, 14, 16))