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"
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"
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"
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"
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"
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"
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"
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"
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"
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"])