def test_services_remains_empty_on_failed_http(self, MockHttp): MockHttp.return_value.request.return_value = ({'status': 500}, "") client = Embedly(self.key) client.get_services() self.assertFalse(client.services) self.assertTrue(MockHttp.return_value.request.called)
def test_error(self): http = Embedly(self.key) obj = http.oembed('http://www.embedly.com/this/is/a/bad/url') self.assertTrue(obj['error']) obj = http.oembed('http://blog.embed.ly/lsbsdlfldsf/asdfkljlas/klajsdlfkasdf') self.assertTrue(obj['error']) obj = http.oembed('http://twitpic/nothing/to/see/here') self.assertTrue(obj['error'])
def test_too_many_urls(self): http = Embedly(self.key) urls = ['http://embed.ly'] * 21 try: http.oembed(urls) self.fail('too many urls, should have thrown an error') except Exception as e: self.assertTrue(type(e), ValueError)
def test_raw_content_in_request(self): client = Embedly(self.key) response = client.oembed('http://www.scribd.com/doc/13994900/Easter', raw=True) self.assertEqual(response['raw'], response.data['raw']) parsed = json.loads(response['raw'].decode('utf-8')) self.assertEqual(response['type'], parsed['type'])
def test_error(self): http = Embedly(self.key) obj = http.oembed('http://www.youtube.com/this/is/a/bad/url') self.assert_(obj.error is True, obj.dict) obj = http.oembed('http://blog.embed.ly/lsbsdlfldsf/asdfkljlas/klajsdlfkasdf') self.assert_(obj.error is True, obj.dict) obj = http.oembed('http://twitpic/nothing/to/see/here') self.assert_(obj.error is True, obj.dict)
def test_error(self): http = Embedly(self.key) obj = http.oembed('http://www.youtube.com/this/is/a/bad/url') self.assert_(obj.error is True, obj.dict) obj = http.oembed( 'http://blog.embed.ly/lsbsdlfldsf/asdfkljlas/klajsdlfkasdf') self.assert_(obj.error is True, obj.dict) obj = http.oembed('http://twitpic/nothing/to/see/here') self.assert_(obj.error is True, obj.dict)
def test_raw_content_in_request(self): client = Embedly(self.key) response = client.oembed( 'http://www.scribd.com/doc/13994900/Easter', raw=True) self.assertEqual(response['raw'], response.data['raw']) parsed = json.loads(response['raw'].decode('utf-8')) self.assertEqual(response['type'], parsed['type'])
def set_embedly_data(self, field_name): original_field_value = getattr(self, 'original_{0}'.format(field_name)) new_field_value = getattr(self, field_name) if new_field_value != original_field_value: embedly_key = getattr(settings, 'EMBEDLY_KEY') if embedly_key: client = Embedly(embedly_key) data_field_name = '{0}_data'.format(field_name) setattr(self, data_field_name, client.oembed(new_field_value)._data) setattr(self, 'original_{0}'.format(field_name), new_field_value)
def test_providers(self): http = Embedly(self.key) objs = http.oembed(['http://www.scribd.com/doc/13994900/Easter', 'http://www.scribd.com/doc/28452730/Easter-Cards']) self.assert_(objs[0].provider_url == 'http://www.scribd.com/') self.assert_(objs[1].provider_url == 'http://www.scribd.com/') objs = http.oembed(['http://www.youtube.com/watch?v=Zk7dDekYej0', 'http://yfrog.com/h22eu4']) self.assert_(objs[0].provider_url == 'http://www.youtube.com/') self.assert_(objs[1].provider_url == 'http://yfrog.com/')
def test_providers(self): http = Embedly(self.key) objs = list(http.oembed(['http://www.scribd.com/doc/13994900/Easter', 'http://www.scribd.com/doc/28452730/Easter-Cards'])) self.assertEqual(objs[0]['provider_url'], 'http://www.scribd.com/') self.assertEqual(objs[1]['provider_url'], 'http://www.scribd.com/') objs = list(http.oembed(['http://www.youtube.com/watch?v=Zk7dDekYej0', 'http://yfrog.com/h22eu4'])) self.assertEqual(objs[0]['provider_url'], 'http://www.youtube.com/') self.assertEqual(objs[1]['provider_url'], 'http://yfrog.com')
def test_provider(self): http = Embedly(self.key) obj = http.oembed('http://www.scribd.com/doc/13994900/Easter') self.assertTrue(obj.provider_url == 'http://www.scribd.com/') obj = http.oembed('http://www.scribd.com/doc/28452730/Easter-Cards') self.assertTrue(obj.provider_url == 'http://www.scribd.com/') obj = http.oembed('http://www.youtube.com/watch?v=Zk7dDekYej0') self.assertTrue(obj.provider_url == 'http://www.youtube.com/') obj = http.oembed('http://yfrog.com/h22eu4j') self.assertTrue(obj.provider_url == 'http://yfrog.com')
def test_provider(self): http = Embedly(self.key) obj = http.oembed("http://www.scribd.com/doc/13994900/Easter") self.assert_(obj.provider_url == "http://www.scribd.com/") obj = http.oembed("http://www.scribd.com/doc/28452730/Easter-Cards") self.assert_(obj.provider_url == "http://www.scribd.com/") obj = http.oembed("http://www.youtube.com/watch?v=Zk7dDekYej0") self.assert_(obj.provider_url == "http://www.youtube.com/") obj = http.oembed("http://yfrog.com/h22eu4j") self.assert_(obj.provider_url == "http://yfrog.com")
def test_multi_errors(self): http = Embedly(self.key) objs = http.oembed(["http://www.youtube.com/this/is/a/bad/url", "http://blog.embed.ly/alsd/slsdlf/asdlfj"]) self.assert_(objs[0].type == "error", objs[0].dict) self.assert_(objs[1].type == "error", objs[1].dict) objs = http.oembed(["http://blog.embed.ly/lsbsdlfldsf/asdf/kl", "http://twitpic.com/nothing/to/see/here"]) self.assert_(objs[0].type == "error", objs[0].dict) self.assert_(objs[1].type == "error", objs[1].dict) objs = http.oembed(["http://blog.embed.ly/lsbsdlfldsf/asdf/kl", "http://yfrog.com/h22eu4j"]) self.assert_(objs[0].type == "error", objs[0].dict) self.assert_(objs[1].type == "photo", objs[1].dict) objs = http.oembed(["http://yfrog.com/h22eu4j", "http://www.scribd.com/asdf/asdf/asdfasdf"]) self.assert_(objs[0].type == "photo", objs[0].dict) self.assert_(objs[1].type == "error", objs[1].dict)
def init_api(domain, key_enabled): opts = {} if domain: opts['domain'] = domain if key_enabled: if not environ.get('EMBEDLY_KEY'): raise RuntimeError('Please set env variable $EMBEDLY_KEY') opts['key'] = environ["EMBEDLY_KEY"] scc.api = Embedly(**opts)
def test_multi_errors(self): http = Embedly(self.key) objs = list( http.oembed([ 'http://www.embedly.com/this/is/a/bad/url', 'http://blog.embed.ly/alsd/slsdlf/asdlfj' ])) self.assertEqual(objs[0]['type'], 'error') self.assertEqual(objs[1]['type'], 'error') objs = list( http.oembed([ 'http://blog.embed.ly/lsbsdlfldsf/asdf/kl', 'http://twitpic.com/nothing/to/see/here' ])) self.assertEqual(objs[0]['type'], 'error') self.assertEqual(objs[1]['type'], 'error') objs = list( http.oembed([ 'http://blog.embed.ly/lsbsdlfldsf/asdf/kl', 'http://yfrog.com/h22eu4j' ])) self.assertEqual(objs[0]['type'], 'error') self.assertEqual(objs[1]['type'], 'photo') objs = list( http.oembed([ 'http://yfrog.com/h22eu4j', 'http://www.scribd.com/asdf/asdf/asdfasdf' ])) self.assertEqual(objs[0]['type'], 'photo') self.assertEqual(objs[1]['type'], 'error')
def test_multi_errors(self): http = Embedly(self.key) objs = http.oembed([ 'http://www.youtube.com/this/is/a/bad/url', 'http://blog.embed.ly/alsd/slsdlf/asdlfj' ]) self.assert_(objs[0].type == 'error', objs[0].dict) self.assert_(objs[1].type == 'error', objs[1].dict) objs = http.oembed([ 'http://blog.embed.ly/lsbsdlfldsf/asdf/kl', 'http://twitpic.com/nothing/to/see/here' ]) self.assert_(objs[0].type == 'error', objs[0].dict) self.assert_(objs[1].type == 'error', objs[1].dict) objs = http.oembed([ 'http://blog.embed.ly/lsbsdlfldsf/asdf/kl', 'http://yfrog.com/h22eu4j' ]) self.assert_(objs[0].type == 'error', objs[0].dict) self.assert_(objs[1].type == 'photo', objs[1].dict) objs = http.oembed([ 'http://yfrog.com/h22eu4j', 'http://www.scribd.com/asdf/asdf/asdfasdf' ]) self.assert_(objs[0].type == 'photo', objs[0].dict) self.assert_(objs[1].type == 'error', objs[1].dict)
def test_multi_errors(self): http = Embedly(self.key) objs = list(http.oembed(['http://www.embedly.com/this/is/a/bad/url', 'http://blog.embed.ly/alsd/slsdlf/asdlfj'])) self.assertTrue(objs[0].type == 'error', objs[0].dict) self.assertTrue(objs[1].type == 'error', objs[1].dict) objs = list(http.oembed(['http://blog.embed.ly/lsbsdlfldsf/asdf/kl', 'http://twitpic.com/nothing/to/see/here'])) self.assertTrue(objs[0].type == 'error',objs[0].dict) self.assertTrue(objs[1].type == 'error',objs[1].dict) objs = list(http.oembed(['http://blog.embed.ly/lsbsdlfldsf/asdf/kl', 'http://yfrog.com/h22eu4j'])) self.assertTrue(objs[0].type == 'error',objs[0].dict) self.assertTrue(objs[1].type == 'photo',objs[1].dict) objs = list(http.oembed(['http://yfrog.com/h22eu4j', 'http://www.scribd.com/asdf/asdf/asdfasdf'])) self.assertTrue(objs[0].type == 'photo',objs[0].dict) self.assertTrue(objs[1].type == 'error',objs[1].dict)
def test_regex_url_matches(self): regex = [ 'http://.*youtube\\.com/watch.*', 'http://www\\.vimeo\\.com/.*' ] client = Embedly(self.key) client._regex = re.compile('|'.join(regex)) self.assertTrue( client.is_supported('http://www.youtube.com/watch?v=Zk7dDekYej0')) self.assertTrue(client.is_supported('http://www.vimeo.com/18150336')) self.assertFalse(client.is_supported('http://vimeo.com/18150336')) self.assertFalse(client.is_supported('http://yfrog.com/h22eu4j'))
def test_provider(self): http = Embedly(self.key) obj = http.oembed('http://www.scribd.com/doc/13994900/Easter') self.assert_(obj.provider_url == 'http://www.scribd.com/') obj = http.oembed('http://www.scribd.com/doc/28452730/Easter-Cards') self.assert_(obj.provider_url == 'http://www.scribd.com/') obj = http.oembed('http://www.youtube.com/watch?v=Zk7dDekYej0') self.assert_(obj.provider_url == 'http://www.youtube.com/') obj = http.oembed('http://yfrog.com/h22eu4j') self.assert_(obj.provider_url == 'http://yfrog.com')
def test_regex_url_matches(self): regex = [ 'http://.*youtube\\.com/watch.*', 'http://www\\.vimeo\\.com/.*'] client = Embedly(self.key) client._regex = re.compile('|'.join(regex)) self.assertTrue( client.is_supported('http://www.youtube.com/watch?v=Zk7dDekYej0')) self.assertTrue( client.is_supported('http://www.vimeo.com/18150336')) self.assertFalse( client.is_supported('http://vimeo.com/18150336')) self.assertFalse( client.is_supported('http://yfrog.com/h22eu4j'))
def test_services_can_be_manually_configured(self): client = Embedly(self.key) client.services = ['nothing', 'like', 'real', 'response', 'data'] self.assertTrue('nothing' in client.get_services()) self.assertEqual(len(client.get_services()), 5)
def test_regex_access_triggers_get_services(self, mock_services): client = Embedly(self.key) client.regex self.assertTrue(mock_services.called) self.assertIsNone(client._regex)
def test_exception_on_too_many_urls(self): http = Embedly(self.key) urls = ['http://embed.ly'] * 21 with self.assertRaises(ValueError): http.oembed(urls)
def test_preview(self): client = Embedly(self.key) response = client.preview('http://vimeo.com/18150336') self.assertEqual(response.method, 'preview') self.assertEqual(response['provider_name'], 'Vimeo')
def test_objectify(self): client = Embedly(self.key) response = client.objectify('http://vimeo.com/18150336') self.assertEqual(response.method, 'objectify') self.assertEqual(response['provider_name'], 'Vimeo')
def test_extract(self): client = Embedly(self.key) response = client.extract('http://vimeo.com/18150336') self.assertEqual(response.method, 'extract') self.assertEqual(response['provider_name'], 'Vimeo')
def test_get_services_retrieves_data_and_builds_regex(self): client = Embedly(self.key) client.get_services() self.assertGreater(len(client.services), 0) self.assertTrue(client.regex.match('http://yfrog.com/h22eu4j'))
def test_requires_url(self): with self.assertRaises(ValueError): Embedly(self.key)._get(1, "test", None)
def test_exception_on_too_many_urls(self): urls = ['http://embed.ly'] * 21 with self.assertRaises(ValueError): Embedly(self.key)._get(1, "test", urls)
def test_requires_api_key(self): with self.assertRaises(ValueError): Embedly()._get(1, "test", "http://fake")