def test_tokens_generated(self): self.assertEqual(generate_token(0), 'q70') self.assertEqual(generate_token(1), 'qr0') self.assertEqual(generate_token(10), 'qP0') self.assertEqual(generate_token(4000), '00x') self.assertEqual(generate_token(77), 'qYR') self.assertEqual(generate_token(65), 'qeR') self.assertEqual(generate_token(45), 'q6R')
def shorten_url(self, long_url, user_token=None): if not user_token: user_token = DEFAULT_USER_TOKEN row = yield self.get_or_create_row(long_url, user_token) short_url = row['short_url'] if not row['short_url']: short_url = generate_token(row['id']) yield self.update_short_url(row['id'], short_url) yield self.metrics.publish_created_url_metrics() returnValue(urljoin(self.config['host_domain'], short_url))
def test_custom_alphabet(self): alphabet = '0123456789' self.assertEqual(generate_token(45, alphabet), '5529') self.assertEqual(generate_token(7, alphabet), '5979') self.assertEqual(generate_token(4000, alphabet), '1999') self.assertEqual(generate_token(77, alphabet), '5779')