@@ -0,0 +1,989 @@
+import unittest%0D%0Aimport requests%0D%0Aimport logging%0D%0Aimport re%0D%0A%0D%0A# Default is warning, it's to suppress requests INFO log%0D%0Alogging.basicConfig(format='%25(message)s')%0D%0A%0D%0A%0D%0Adef solution():%0D%0A    return str(2**38)%0D%0A%0D%0A%0D%0Aclass SolutionTest(unittest.TestCase):%0D%0A%0D%0A    def setUp(self):%0D%0A        self.prefix = %22http://www.pythonchallenge.com/pc/def/%22%0D%0A        self.suffix = %22.html%22%0D%0A%0D%0A    def test_solution(self):%0D%0A        try:%0D%0A            r = requests.get(''.join(%5Bself.prefix, solution(), self.suffix%5D))%0D%0A        except:%0D%0A            raise%0D%0A        self.assertTrue(r.ok)%0D%0A        next_entry = %5Bre.sub(r'(.*)URL=(.*)%5C.html%5C%22%5C%3E', r'%5C2', line)%0D%0A                      for line in r.iter_lines() if re.match(r'.*URL.*', line)%5D%0D%0A        if len(next_entry) != 0:%0D%0A            r.close()%0D%0A            r = requests.get(%0D%0A                ''.join(%5Bself.prefix, next_entry%5B0%5D, self.suffix%5D))%0D%0A            logging.warn('Level 01 is %25s' %25 r.url)%0D%0A%0D%0A%0D%0Aif __name__ == %22__main__%22:%0D%0A    unittest.main(failfast=True)%0D%0A

add Level 00