def test_increment_stored_counter(self): counter = random.randrange(0, 100000) times = random.randrange(0, 100) ShortLink.set_counter(counter) for i in range(times): self.assertEquals(counter + i + 1, ShortLink.incr_counter()) self.assertEquals(counter + times, ShortLink.get_counter())
def test_save_shortLink_autofield(self): times = random.randrange(1, 100) url = "xlarrakoetxea.org" title = "My webpage" host = "xlarrakoetxea.org" # Set the shor link counter for i in range(times): ShortLink.incr_counter() # Save sl = ShortLink() sl.url = url sl.title = title sl.host = host sl.save() # Check the correct counter sl2 = ShortLink.find(counter=times + 1) self.assertEquals(sl, sl2)
def create_token(url, user_id=None, notification=True): # Get the next counter to create the token counter = ShortLink.incr_counter() # Sanitize the url url = sanitize_url(url) # Get the title # Fix this!! test if the url exists or not!! try: title = extract_url_title(url) except: title = "No title" # Get the host host = extract_url_host(url) # Create the instance with the data sl = ShortLink() sl.counter = counter sl.url = url sl.title = title sl.host = host # Save sl.save() # If is a user link save it also if user_id: user_link = UserLink() user_link.user = User.objects.get(id=user_id) user_link.token = sl.token user_link.save() # Only need notification if we have a user if notification: # Send notifications notif = ShortLinkNotification(sl, user_id=user_id) #notif.send_push() # Push realtime notification notif.save() # save the notification for the dashboard # Fill the metrics SharedLinkMetrics().increment() logger.debug("{0} shorted url '{1}' to token '{2}'".format(user_id, url, sl.token)) # Return the new token return sl.token