def test_timeout(self): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = "" port = 0 # automatically assign port sock.bind((host, port)) host, port = sock.getsockname() # get actual port sock.listen(1) reader = RssReader("http://{}:{}/".format(host, port), timeout=0.01) self.assertEqual(0, reader.consecutive_failures) self.assertSocketTimeout(reader.get_entries) self.assertEqual(1, reader.consecutive_failures) self.assertSocketTimeout(reader.get_entries) self.assertEqual(2, reader.consecutive_failures) # point the reader at a valid file to test that consecutive_failures # gets reset reader.feed_url = self.url entries = reader.get_entries() self.assertEqual(3, len(entries)) self.assertEqual(0, reader.consecutive_failures) sock.close()