import pytest import mimetypes def verify_file(gb_api, httpserver, filename, custom_filename, content_type, expected_content_type): if not content_type: # guess content type content_type = mimetypes.guess_type(filename)[0] httpserver.serve_content(content=open(filename, 'rb').read(), headers={'content-type': content_type}) # format url file_url = httpserver.url + '/' + custom_filename # add url assert gb_api.add_url(file_url) == True payload = {} payload.update({'showerrors': '1'}) result = gb_api.search('url:' + file_url, payload) assert len(result['results']) == 1 assert result['results'][0]['contentType'] == expected_content_type @pytest.mark.parametrize('filename, custom_filename, content_type, expected_content_type', [ ('src/example_cpp.cpp', 'example_cpp.cpp', 'text/x-c++src', 'text'), ('src/example_cpp.cpp', 'example_plain.cpp', 'text/plain', 'text'), ('src/example_cpp.cpp', 'example_audio.cpp', 'audio/3gpp', ''), ]) def test_file_cpp(gb_api, httpserver, filename, custom_filename, content_type, expected_content_type): verify_file(gb_api, httpserver, 'data/' + filename, custom_filename, content_type, expected_content_type)