示例#1
0
 def testALiberalImageMediaTypeAcceptorThatKindaDoesNotMindText(self):
     visual = MediaTypeAcceptor("image/*;q=0.9,text/plain;q=0.1")
     assert not visual.preferred(["text/html"])
     assert visual.preferred(["image/png"]) == "image/png"
     assert visual.preferred(["image/jpeg", "text/html"]) == "image/jpeg"
     assert visual.preferred(["image/jpeg", "text/plain"]) == "image/jpeg"
     assert visual.preferred(["text/plain"]) == "text/plain"
     assert visual.preferred(["text/html", "text/plain"]) == "text/plain"
示例#2
0
 def testParsingFirefoxsDefaultAccept(self):
     firefox = MediaTypeAcceptor(FirefoxAcceptString)
     assert firefox.accepts("application/xml")
     assert firefox.accepts("application/xhtml+xml")
     assert firefox.accepts("text/html")
     assert firefox.accepts("text/plain")
     assert firefox.accepts("image/png")
     assert firefox.accepts("anyold/thing")
示例#3
0
 def testParsingChromiumsDefaultAccept(self):
     chromium = MediaTypeAcceptor(ChromiumAcceptString)
     assert chromium.accepts("application/xml")
     assert chromium.accepts("application/xhtml+xml")
     assert chromium.accepts("text/html")
     assert chromium.accepts("text/plain")
     assert chromium.accepts("image/png")
     assert chromium.accepts("anyold/thing")
示例#4
0
    def testParsingNothing(self):
        # RFC 2616, 14.1 - If no Accept header field is present,
        #                  then it is assumed that the client
        #                  accepts all media types.
        liberal = MediaTypeAcceptor(None)
        assert liberal.accepts("text/html")
        assert liberal.accepts("anyold/thing")

        liberal = MediaTypeAcceptor("")
        assert liberal.accepts("text/html")
        assert liberal.accepts("anyold/thing")
示例#5
0
 def testALiberalMediaTypeAcceptorThatPrefersImagesAndTextToAnythingElse(self):
     visual = MediaTypeAcceptor("image/*;q=0.9,text/plain;q=0.8,*/*;q=0.5")
     assert visual.preferred(["text/html"]) == "text/html"
     assert visual.preferred(["image/png"]) == "image/png"
     assert visual.preferred(["image/jpeg", "text/html"]) == "image/jpeg"
     assert visual.preferred(["image/jpeg", "text/plain"]) == "image/jpeg"
     assert visual.preferred(["text/plain"]) == "text/plain"
     assert visual.preferred(["text/html", "text/plain"]) == "text/plain"
示例#6
0
 def testFeedReaderAcceptor(self):
     fr = MediaTypeAcceptor(BogusFeedReaderAcceptString)
     assert fr.preferred(["application/atom+xml"]) == "application/atom+xml"
     assert fr.preferred(["application/rdf+xml", "application/atom+xml"]) == "application/atom+xml"
示例#7
0
 def testIE8MediaTypeAcceptor(self):
     ie8 = MediaTypeAcceptor(IE8AcceptString)
     assert ie8.preferred(["text/html"]) == "text/html"
     assert ie8.preferred(["text/html", "application/xhtml+xml"]) == "text/html"
     assert ie8.preferred(["image/jpeg", "image/png", "text/plain"]) == "image/jpeg"
     assert ie8.preferred(["image/jpeg", "text/plain"]) == "image/jpeg"
示例#8
0
 def testFirefoxMediaTypeAcceptor(self):
     firefox = MediaTypeAcceptor(FirefoxAcceptString)
     assert firefox.preferred(["text/html"]) == "text/html"
     assert firefox.preferred(["text/html", "application/xhtml+xml"]) == "text/html"
     assert firefox.preferred(["image/jpeg", "image/png", "text/plain"]) == "image/jpeg"
     assert firefox.preferred(["image/jpeg", "text/plain"]) == "image/jpeg"
示例#9
0
 def testChromiumMediaTypeAcceptor(self):
     chromium = MediaTypeAcceptor(ChromiumAcceptString)
     assert chromium.preferred(["text/html"]) == "text/html"
     assert chromium.preferred(["text/html", "application/xhtml+xml"]) == "application/xhtml+xml"
     assert chromium.preferred(["image/jpeg", "image/png", "text/plain"]) == "image/png"
     assert chromium.preferred(["image/jpeg", "text/plain"]) == "text/plain"
示例#10
0
    def testThatAMediaTypeMustHaveASlash(self):
        self.assertRaises(AssertionError, MediaTypeAcceptor, "image;q=0.9,image/jpeg;q=0.9,text/plain")

        strict = MediaTypeAcceptor("image/*;q=0.9,image/jpeg;q=0.9,text/plain")
        assert not any(map(lambda mr: "image" in mr, strict.ranges))
示例#11
0
 def testParsingTwoRanges(self):
     visual_and_textual = MediaTypeAcceptor("image/*,text/*")
     assert visual_and_textual.accepts("image/png")
     assert visual_and_textual.accepts("image/jpeg")
     assert visual_and_textual.accepts("text/plain")
     assert not visual_and_textual.accepts("application/json")
示例#12
0
 def testParsingOneType(self):
     focused = MediaTypeAcceptor("application/json")
     assert focused.accepts("application/json")
     assert not focused.accepts("text/html")
     assert not focused.accepts("anyold/thing")
示例#13
0
 def testALiberalImageMediaTypeAcceptor(self):
     visual = MediaTypeAcceptor("image/*")
     assert not visual.preferred(["text/html"])
     assert visual.preferred(["image/png"]) == "image/png"
     assert visual.preferred(["image/jpeg", "text/html"]) == "image/jpeg"
示例#14
0
 def testAPickyMediaTypeAcceptor(self):
     picky = MediaTypeAcceptor("application/json;q=0.9,text/html;q=0.8")
     assert picky.preferred(["application/json"]) == "application/json"
     assert picky.preferred(["text/html", "application/json"]) == "application/json"
     assert picky.preferred(["text/html"]) == "text/html"
示例#15
0
 def testAFocusedMediaTypeAcceptor(self):
     focused = MediaTypeAcceptor("application/json")
     assert focused.preferred(["application/json"]) == "application/json"
     assert focused.preferred(["text/html", "application/json"]) == "application/json"
     assert not focused.preferred(["text/html"])
示例#16
0
 def testParsingHorrorShowAll(self):
     liberal = MediaTypeAcceptor("*")
     assert liberal.accepts("text/html")
     assert liberal.accepts("anyold/thing")
示例#17
0
 def testThatPositionBreaksTies(self):
     visual = MediaTypeAcceptor("image/png;q=0.9,image/jpeg;q=0.9,text/plain")
     assert visual.preferred(["image/png", "image/jpeg"]) == "image/png"
     assert visual.preferred(["image/jpeg", "image/png"]) == "image/png"
示例#18
0
 def testParsingTwoTypes(self):
     focused = MediaTypeAcceptor("application/json,text/html")
     assert focused.accepts("application/json")
     assert focused.accepts("text/html")
     assert not focused.accepts("image/jpeg")
     assert not focused.accepts("anyold/thing")
示例#19
0
 def testParsingOneTypeRange(self):
     visual = MediaTypeAcceptor("image/*")
     assert visual.accepts("image/png")
     assert visual.accepts("image/jpeg")
     assert not visual.accepts("application/json")
     assert not visual.accepts("text/plain")