mirror of
https://github.com/netzbegruenung/green-spider.git
synced 2024-05-01 16:44:51 +02:00
Add unit tests for url_reachability
This commit is contained in:
parent
2cebb3ff28
commit
15aa722bfe
71
checks/url_reachability_test.py
Normal file
71
checks/url_reachability_test.py
Normal file
|
@ -0,0 +1,71 @@
|
|||
import httpretty
|
||||
from httpretty import httprettified
|
||||
import unittest
|
||||
|
||||
from checks import url_reachability
|
||||
from checks.config import Config
|
||||
|
||||
@httprettified
|
||||
class TestCharsetChecker(unittest.TestCase):
|
||||
|
||||
def test_success(self):
|
||||
url = 'http://www.example.com/'
|
||||
httpretty.register_uri(httpretty.HEAD, url,
|
||||
status=200, body="<html></html>")
|
||||
|
||||
config = Config(urls=[url])
|
||||
checker = url_reachability.Checker(config=config, previous_results={})
|
||||
result = checker.run()
|
||||
|
||||
self.assertEqual(result[url]['url'], url)
|
||||
self.assertEqual(result[url]['redirect_history'], [])
|
||||
self.assertEqual(result[url]['status'], 200)
|
||||
self.assertIsNone(result[url]['exception'])
|
||||
self.assertTrue(0 < result[url]['duration'] < 100)
|
||||
|
||||
|
||||
def test_redirect(self):
|
||||
url = 'http://www.example.com/'
|
||||
url2 = 'http://www2.example.com/'
|
||||
httpretty.register_uri(httpretty.HEAD, url,
|
||||
status=302, body="",
|
||||
adding_headers={"Location": url2})
|
||||
httpretty.register_uri(httpretty.HEAD, url2,
|
||||
status=200, body="<html></html>")
|
||||
|
||||
config = Config(urls=[url])
|
||||
checker = url_reachability.Checker(config=config, previous_results={})
|
||||
result = checker.run()
|
||||
|
||||
self.assertIn(url, result)
|
||||
self.assertEqual(result[url]['url'], url)
|
||||
self.assertEqual(result[url]['status'], 200)
|
||||
self.assertIsNone(result[url]['exception'])
|
||||
self.assertTrue(0 < result[url]['duration'] < 100)
|
||||
self.assertEqual(len(result[url]['redirect_history']), 1)
|
||||
self.assertEqual(result[url]['redirect_history'][0]['status'], 302)
|
||||
self.assertEqual(result[url]['redirect_history'][0]['redirect_to'], url2)
|
||||
|
||||
|
||||
def test_notfound(self):
|
||||
url = 'http://www.example.com/'
|
||||
httpretty.register_uri(httpretty.HEAD, url,
|
||||
status=404, body="<html><body>Not found</body></html>")
|
||||
|
||||
config = Config(urls=[url])
|
||||
checker = url_reachability.Checker(config=config, previous_results={})
|
||||
result = checker.run()
|
||||
|
||||
self.assertEqual(result[url]['url'], url)
|
||||
self.assertEqual(result[url]['redirect_history'], [])
|
||||
self.assertEqual(result[url]['status'], 404)
|
||||
self.assertIsNone(result[url]['exception'])
|
||||
|
||||
newconfig = checker.config
|
||||
|
||||
self.assertEqual(len(newconfig.urls), 0)
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
Reference in a new issue