def test_add_url_via_form(self): url = "test" rv = self.app.get("/add/" + url) self.assertTrue(rv.status_code == 302) self.assertTrue(rv.headers["Location"] == shorten.SITE_URL) self.login("admin", "default") url = "http://www.google.com" short_url = get_short_url_from_id(1) rv = self.app.post("/add/form/", data=dict(url=url), follow_redirects=True) self.assertTrue("No entries here so far" not in rv.data) self.assertTrue(url in rv.data) self.assertTrue(short_url in rv.data) url = "www.bing.com" short_url = get_short_url_from_id(2) rv = self.app.post("/add/form/", data=dict(url=url), follow_redirects=True) self.assertTrue("http://" + url in rv.data) self.assertTrue(short_url in rv.data)
def add_url(long_url, authenticated=False, return_json=False): if not authenticated: return redirect(SITE_URL, code=302) long_url = long_url.strip() if not 'http://' in long_url: long_url = 'http://' + long_url try: query = 'select short_url from entries where long_url=(?)' cur = g.db.execute(query, [long_url]) short_url = cur.fetchone()[0] if return_json: return json.dumps(short_url) else: flash("That url is already in the database.") return redirect(url_for('show_entries')) except: pass try: query = 'select seq from sqlite_sequence where name="entries"' conn = g.db.execute(query) id_number = conn.fetchone()[0] except TypeError: id_number = 0 short_url = shorten_utils.get_short_url_from_id(id_number + 1) g.db.execute( 'insert into entries (long_url, short_url) values (?, ?)', [long_url, short_url] ) g.db.commit() if return_json: return json.dumps(short_url) else: return redirect(url_for('show_entries'))
def test_util_functions(self): id_number = 1 short_url = get_short_url_from_id(id_number) self.assertEqual(get_short_url_from_id(id_number), get_short_url_from_id(get_id_from_short_url(short_url))) self.assertEqual(get_id_from_short_url(short_url), get_id_from_short_url(get_short_url_from_id(id_number)))