Beispiel #1
0
 def setUp(self):
     params = {'title': 'My entry',
               'content': 'My content',
               'tags': 'zinnia, test',
               'slug': 'my-entry'}
     self.entry = Entry.objects.create(**params)
     self.pinger = ExternalUrlsPinger(self.entry, start_now=False)
Beispiel #2
0
def ping_external_urls_handler(sender, **kwargs):
    """Ping Externals URLS when an entry is saved"""
    entry = kwargs['instance']

    if entry.is_visible and settings.SAVE_PING_EXTERNAL_URLS:
        from zinnia.ping import ExternalUrlsPinger

        ExternalUrlsPinger(entry)
 def test_find_external_urls(self):
     r = URLRessources()
     pinger = ExternalUrlsPinger(self.entry)
     external_urls = pinger.find_external_urls(self.entry)
     self.assertEqual(external_urls, [])
     self.entry.content = """
     <p>This is a <a href="http://fantomas.willbreak.it/">link</a>
     to a site.</p>
     <p>This is a <a href="%s/blog/">link</a> within my site.</p>
     <p>This is a <a href="/blog/">relative link</a> within my site.</p>
     """ % r.site_url
     self.entry.save()
     external_urls = pinger.find_external_urls(self.entry)
     self.assertEqual(external_urls, ['http://fantomas.willbreak.it/'])
 def test_is_external_url(self):
     r = URLRessources()
     pinger = ExternalUrlsPinger(self.entry)
     self.assertEqual(pinger.is_external_url(
         'http://example.com/', 'http://google.com/'), True)
     self.assertEqual(pinger.is_external_url(
         'http://example.com/toto/', 'http://google.com/titi/'), True)
     self.assertEqual(pinger.is_external_url(
         'http://example.com/blog/', 'http://example.com/page/'), False)
     self.assertEqual(pinger.is_external_url(
         '%s/blog/' % r.site_url, r.site_url), False)
     self.assertEqual(pinger.is_external_url(
         'http://google.com/', r.site_url), True)
     self.assertEqual(pinger.is_external_url(
         '/blog/', r.site_url), False)
 def test_run(self):
     import zinnia.ping
     self.original_urlopen = zinnia.ping.urlopen
     zinnia.ping.urlopen = self.fake_urlopen
     self.entry.content = """
     <a href="http://localhost/">Localhost</a>
     <a href="http://example.com/">Example</a>
     <a href="http://error">Error</a>
     <a href="http://www.google.co.uk/images/nav_logo72.png">Img</a>
     """
     pinger = ExternalUrlsPinger(self.entry)
     pinger.run()
     self.assertEqual(pinger.results, [
         'http://localhost/ cannot be pinged.'])
     zinnia.ping.urlopen = self.original_urlopen
    def test_find_pingback_urls(self):
        # Set up a stub around urlopen
        import zinnia.ping
        self.original_urlopen = zinnia.ping.urlopen
        zinnia.ping.urlopen = self.fake_urlopen
        pinger = ExternalUrlsPinger(self.entry)

        urls = ['http://localhost/', 'http://example.com/', 'http://error',
                'http://www.google.co.uk/images/nav_logo72.png']
        self.assertEqual(
            pinger.find_pingback_urls(urls),
            {'http://localhost/': 'http://localhost/xmlrpc/',
             'http://example.com/': 'http://example.com/xmlrpc.php'})
        # Remove stub
        zinnia.ping.urlopen = self.original_urlopen
 def test_find_pingback_href(self):
     pinger = ExternalUrlsPinger(self.entry)
     result = pinger.find_pingback_href('')
     self.assertEqual(result, None)
     result = pinger.find_pingback_href("""
     <html><head><link rel="pingback" href="/xmlrpc/" /></head>
     <body></body></html>
     """)
     self.assertEqual(result, '/xmlrpc/')
     result = pinger.find_pingback_href("""
     <html><head><LINK hrEF="/xmlrpc/" REL="PingBack" /></head>
     <body></body></html>
     """)
     self.assertEqual(result, '/xmlrpc/')
     result = pinger.find_pingback_href("""
     <html><head><LINK REL="PingBack" /></head><body></body></html>
     """)
     self.assertEqual(result, None)
 def test_pingback_url(self):
     pinger = ExternalUrlsPinger(self.entry)
     self.assertEqual(
         pinger.pingback_url('http://localhost',
                             'http://error.com'),
         'http://error.com cannot be pinged.')