def find_shortname(self, url): shortener = Shortener() nb = 2 while nb < 10: shortname = shortener.shorten(url, nb) o = self.get_by_key(shortname) if not o: return shortname nb = nb + 1
class TestShortener(unittest.TestCase): url = "http://example.com" def setUp(self): self.shortener = Shortener() def test_init_with_clean_slate(self): self.assertEqual(self.shortener.id, 0) self.assertEqual(self.shortener.urls, {}) def test_shorten_url_and_expand_token(self): token = self.shortener.shorten(TestShortener.url) expanded_url = self.shortener.expand(token) self.assertEqual(TestShortener.url, expanded_url) self.assertNotEqual(TestShortener.url, token) self.assertNotEqual(token, self.shortener.shorten("http://another.com")) def test_expand_nonexistant_token(self): self.assertIsNone(self.shortener.expand("herpderp"))
from shortener import Shortener if __name__ == '__main__': shortener = Shortener() print(shortener.shorten("google.com")) print(shortener.fetch(shortener.shorten("google.com"))) hash = shortener.shorten("google.com") shortener.fetch(hash) shortener.fetch(hash) shortener.fetch(hash) shortener.fetch(hash) print(shortener.fetch(hash))