File tree Expand file tree Collapse file tree 3 files changed +56
-2
lines changed
Expand file tree Collapse file tree 3 files changed +56
-2
lines changed Original file line number Diff line number Diff line change 44from github3 .core import Paginate
55from github3 .converters import Modelizer
66
7+
8+ class MimeTypeMixin (object ):
9+
10+ VERSION = 'beta'
11+
12+ def __init__ (self ):
13+ self .mimetypes = set ()
14+
15+ def _parse_mime_type (self , type ):
16+ return 'application/vnd.github.%s.%s+json' % (
17+ self .VERSION , type )
18+
19+ def add_raw (self ):
20+ self .mimetypes .add (self ._parse_mime_type ('raw' ))
21+ return self
22+
23+ def add_text (self ):
24+ self .mimetypes .add (self ._parse_mime_type ('text' ))
25+ return self
26+
27+ def add_html (self ):
28+ self .mimetypes .add (self ._parse_mime_type ('html' ))
29+ return self
30+
31+ def add_full (self ):
32+ self .mimetypes .add (self ._parse_mime_type ('full' ))
33+ return self
34+
35+ def mime_header (self ):
36+ return {'Accept' : ', ' .join (self .mimetypes )}
37+
38+
739class Handler (object ):
840 """ Handler base. Requests to API and modelize responses """
941
Original file line number Diff line number Diff line change 22# -*- encoding: utf-8 -*-
33
44from .base import Handler
5- import github3 . models as models
5+ from github3 import models
66from github3 .converters import Rawlizer
77from github3 .exceptions import UserIsAnonymous
88
Original file line number Diff line number Diff line change 44from mock import Mock , patch
55from unittest import TestCase
66from github3 import api
7- from github3 .handlers .base import Handler
7+ from github3 .handlers .base import Handler , MimeTypeMixin
88from github3 .exceptions import *
99from github3 .converters import *
1010from github3 .models .user import User
1313import requests
1414
1515
16+ class TestMimeTypeMixin (TestCase ):
17+
18+ def setUp (self ):
19+ self .mixin = MimeTypeMixin ()
20+
21+ def _parse_mime_type (self , type ):
22+ return 'application/vnd.github.%s.%s+json' % (
23+ MimeTypeMixin .VERSION , type )
24+
25+ def test_add_mimetypes (self ):
26+ self .mixin .add_raw ()
27+ self .mixin .add_text ()
28+ self .mixin .add_html ()
29+ self .mixin .add_full ()
30+ self .assertEquals (sorted (self .mixin .mime_header ()), sorted ({
31+ 'Accept' : '%s, %s, %s, %s' % (
32+ self ._parse_mime_type ('raw' ),
33+ self ._parse_mime_type ('text' ),
34+ self ._parse_mime_type ('html' ),
35+ self ._parse_mime_type ('full' ))}))
36+
37+
1638class TestHandler (TestCase ):
1739
1840 def setUp (self ):
You can’t perform that action at this time.
0 commit comments