66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
import pytest
|
|
|
|
from rtv.mime_parsers import parsers
|
|
|
|
ARGS = 'url,modified_url,mime_type'
|
|
URLS = {
|
|
'simple_png': (
|
|
'http://www.example.com/i/image.png',
|
|
'http://www.example.com/i/image.png',
|
|
'image/png'),
|
|
'simple_mpeg': (
|
|
'http://www.example.com/v/video.mpeg',
|
|
'http://www.example.com/v/video.mpeg',
|
|
'video/mpeg'),
|
|
'simple_unknown': (
|
|
'http://www.example.com/i/image',
|
|
'http://www.example.com/i/image',
|
|
None),
|
|
'gfycat': (
|
|
'https://gfycat.com/DeliciousUnfortunateAdouri',
|
|
'https://giant.gfycat.com/DeliciousUnfortunateAdouri.webm',
|
|
'video/webm'),
|
|
'youtube': (
|
|
'https://www.youtube.com/watch?v=FjNdYp2gXRY',
|
|
'https://www.youtube.com/watch?v=FjNdYp2gXRY',
|
|
'video/x-youtube'),
|
|
'gifv': (
|
|
'http://i.imgur.com/i/image.gifv',
|
|
'http://i.imgur.com/i/image.mp4',
|
|
'video/mp4'),
|
|
'reddit_uploads': (
|
|
'https://i.reddituploads.com/a065472e47a4405da159189ee48bff46?fit=max'
|
|
'&h=1536&w=1536&s=5639918a0c696b9bb3ec694dc3cf59ac',
|
|
'https://i.reddituploads.com/a065472e47a4405da159189ee48bff46?fit=max'
|
|
'&h=1536&w=1536&s=5639918a0c696b9bb3ec694dc3cf59ac',
|
|
'image/jpeg'),
|
|
'imgur_1': (
|
|
'http://imgur.com/yW0kbMi',
|
|
'https://i.imgur.com/yW0kbMi.jpg',
|
|
'image/jpeg'),
|
|
'imgur_2': (
|
|
'http://imgur.com/yjP1v4B',
|
|
'https://i.imgur.com/yjP1v4Bh.jpg',
|
|
'image/jpeg'),
|
|
'imgur_album': (
|
|
'http://imgur.com/a/qx9t5',
|
|
'http://i.imgur.com/uEt0YLI.jpg',
|
|
'image/x-imgur-album'),
|
|
}
|
|
|
|
|
|
@pytest.mark.parametrize(ARGS, URLS.values(), ids=list(URLS))
|
|
def test_parser(url, modified_url, mime_type, reddit):
|
|
# Include the reddit fixture so the cassettes get generated
|
|
|
|
for parser in parsers:
|
|
if parser.pattern.match(url):
|
|
assert parser.get_mimetype(url) == (modified_url, mime_type)
|
|
break
|
|
else:
|
|
# The base parser should catch all urls before this point
|
|
assert False
|