def test_include_error(self):
   url1 = "http://example.com"
   url2 = "http://example2.com"
   url3 = "http://example3.com"
   tests = [
     {
       "doc": url1,
       "include": "example include 1",
     },
     {
       "doc": url2,
       "include": "example include 2",
     },
     {
       "doc": url3,
       "include": "example include 3",
     },
   ]
   resp1 = (200, "This is an example incl", None)
   resp2 = (200, "This is an example include 2.", None)
   resp3 = (200, "something irrelevant", None)
   resps = { url1: resp1, url2: resp2, url3: resp3 }
   srv_tester = ServiceTester({"service_host": "localhost", "tests": tests})
   srv_tester.get_test_url = lambda mmd, doc, path: doc
   srv_tester.access_and_download = lambda url: resps[url]
   (code, fatal, non_fatal) = srv_tester.test_service()
   self.assertEqual(0, len(fatal))
   self.assertTrue(non_fatal.find("Expected content not found") >= 0)
   self.assertTrue(non_fatal.find(url1) >= 0)
   self.assertTrue(non_fatal.find(url2) < 0)
   self.assertTrue(non_fatal.find(url3) >= 0)
 def test_include_error(self):
     url1 = "http://example.com"
     url2 = "http://example2.com"
     url3 = "http://example3.com"
     tests = [
         {
             "doc": url1,
             "include": "example include 1",
         },
         {
             "doc": url2,
             "include": "example include 2",
         },
         {
             "doc": url3,
             "include": "example include 3",
         },
     ]
     resp1 = (200, "This is an example incl", None)
     resp2 = (200, "This is an example include 2.", None)
     resp3 = (200, "something irrelevant", None)
     resps = {url1: resp1, url2: resp2, url3: resp3}
     srv_tester = ServiceTester({
         "service_host": "localhost",
         "tests": tests
     })
     srv_tester.get_test_url = lambda mmd, doc, path: doc
     srv_tester.access_and_download = lambda url: resps[url]
     (code, fatal, non_fatal) = srv_tester.test_service()
     self.assertEqual(0, len(fatal))
     self.assertTrue(non_fatal.find("Expected content not found") >= 0)
     self.assertTrue(non_fatal.find(url1) >= 0)
     self.assertTrue(non_fatal.find(url2) < 0)
     self.assertTrue(non_fatal.find(url3) >= 0)
 def test_normal_state(self):
   tests = [
     {
       "doc": "http://example.com/",
       "include": "example include",
     },
   ]
   resp = (200, "This is an example include!", None)
   srv_tester = ServiceTester({"service_host": "localhost", "tests": tests})
   srv_tester.access_and_download = lambda url: resp
   (code, fatal, non_fatal) = srv_tester.test_service()
   self.assertEqual(200, code)
   self.assertEqual(0, len(fatal))
   self.assertEqual(0, len(non_fatal))
 def test_service_failure(self):
   tests = [
     {
       "doc": "http://example.com/",
       "include": "example include",
     },
   ]
   resp = (500, "Service unavailable.", None)
   srv_tester = ServiceTester({"service_host": "localhost", "tests": tests})
   srv_tester.access_and_download = lambda url: resp
   (code, fatal, non_fatal) = srv_tester.test_service()
   self.assertNotEqual(200, code)
   self.assertTrue(fatal.find("Service error") >= 0)
   self.assertTrue(fatal.find("example.com") >= 0)
 def test_connection_failure(self):
   tests = [
     {
       "doc": "http://example.com/",
       "include": "example include",
     },
   ]
   resp = (-1, None, None)
   srv_tester = ServiceTester({"service_host": "localhost", "tests": tests})
   srv_tester.access_and_download = lambda url: resp
   (code, fatal, non_fatal) = srv_tester.test_service()
   self.assertTrue(code < 0)
   self.assertTrue(fatal.find("Access error") >= 0)
   self.assertTrue(fatal.find("example.com") >= 0)
 def test_normal_state(self):
     tests = [
         {
             "doc": "http://example.com/",
             "include": "example include",
         },
     ]
     resp = (200, "This is an example include!", None)
     srv_tester = ServiceTester({
         "service_host": "localhost",
         "tests": tests
     })
     srv_tester.access_and_download = lambda url: resp
     (code, fatal, non_fatal) = srv_tester.test_service()
     self.assertEqual(200, code)
     self.assertEqual(0, len(fatal))
     self.assertEqual(0, len(non_fatal))
 def test_service_failure(self):
     tests = [
         {
             "doc": "http://example.com/",
             "include": "example include",
         },
     ]
     resp = (500, "Service unavailable.", None)
     srv_tester = ServiceTester({
         "service_host": "localhost",
         "tests": tests
     })
     srv_tester.access_and_download = lambda url: resp
     (code, fatal, non_fatal) = srv_tester.test_service()
     self.assertNotEqual(200, code)
     self.assertTrue(fatal.find("Service error") >= 0)
     self.assertTrue(fatal.find("example.com") >= 0)
 def test_connection_failure(self):
     tests = [
         {
             "doc": "http://example.com/",
             "include": "example include",
         },
     ]
     resp = (-1, None, None)
     srv_tester = ServiceTester({
         "service_host": "localhost",
         "tests": tests
     })
     srv_tester.access_and_download = lambda url: resp
     (code, fatal, non_fatal) = srv_tester.test_service()
     self.assertTrue(code < 0)
     self.assertTrue(fatal.find("Access error") >= 0)
     self.assertTrue(fatal.find("example.com") >= 0)
Example #9
0
#!/usr/bin/python

from bs_service_tester import ServiceTester
from bot_email import send_bot_email_to_maintainers

service_tester = ServiceTester()


def test_service():
    (code, fatal, non_fatal) = service_tester.test_service()

    if code < 0:
        send_bot_email_to_maintainers(
            "BigSemantics service connection failure", fatal)
    elif code != 200:
        send_bot_email_to_maintainers("BigSemantics service failure", fatal)
    else:
        if len(non_fatal) > 0:
            send_bot_email_to_maintainers("BigSemantics service issue(s)",
                                          non_fatal)
        else:
            print "BS service seems to be working fine."


if __name__ == '__main__':
    test_service()