Пример #1
0
 def handle(self, *args, **options):
     """Handles the check_tinylink_targets admin command."""
     interval = settings.TINYLINK_CHECK_INTERVAL
     period = settings.TINYLINK_CHECK_PERIOD
     url_amount = Tinylink.objects.all().count()
     check_amount = (url_amount / (period / interval)) or 1
     for link in Tinylink.objects.order_by('last_checked')[:check_amount]:
         validate_long_url(link)
     print('[' + timezone.now().strftime('%d.%m.%Y - %H:%M') +
           '] Checked ' + str(check_amount) + ' of ' + str(url_amount) +
           ' total URLs.')
Пример #2
0
 def dispatch(self, request, *args, **kwargs):
     if request.method == 'POST':
         for key in request.POST:
             if key.startswith('validate'):
                 try:
                     link_id = int(key.replace('validate', ''))
                 except ValueError:
                     raise Http404
                 try:
                     link = Tinylink.objects.get(pk=link_id)
                 except Tinylink.DoesNotExist:
                     raise Http404
                 validate_long_url(link)
     return super(TinylinkListView, self).dispatch(request, *args, **kwargs)
Пример #3
0
    def test_model(self):
        obj = TinylinkFactory()
        self.assertTrue(obj.pk)

        link = TinylinkFactory(long_url="http://www.google.com/",
                               short_url="v4bG4S")
        validate_long_url(link)
        self.assertEqual(Tinylink.objects.get(pk=link.pk).validation_error, "")
        link.long_url = "http://www.a1b2c3d4e5000.com:8888/"
        link.save()
        validate_long_url(link)
        self.assertEqual(
            Tinylink.objects.get(pk=link.pk).validation_error,
            "URL not accessible.")
        link.long_url = "%s/redirect-fail/" % self.live_server_url
        link.save()
        validate_long_url(link)
        self.assertTrue(Tinylink.objects.get(pk=link.pk).is_broken)
        link.long_url = "%s/redirect-test/" % self.live_server_url
        link.save()
        validate_long_url(link)
        self.assertTrue(Tinylink.objects.get(pk=link.pk).is_broken)

        link.last_checked = timezone.now() - timezone.timedelta(minutes=61)
        self.assertTrue(link.can_be_validated())
Пример #4
0
 def dispatch(self, request, *args, **kwargs):
     if request.method == 'POST':
         for key in request.POST:
             if key.startswith('validate'):
                 try:
                     link_id = int(key.replace('validate', ''))
                 except ValueError:
                     raise Http404
                 try:
                     link = Tinylink.objects.get(pk=link_id)
                 except Tinylink.DoesNotExist:
                     raise Http404
                 validate_long_url(link)
     return super(TinylinkListView, self).dispatch(request, *args, **kwargs)
Пример #5
0
    def test_model(self):
        obj = TinylinkFactory()
        self.assertTrue(obj.pk)

        link = TinylinkFactory(long_url="http://www.google.com/",
                               short_url="v4bG4S")
        validate_long_url(link)
        self.assertEqual(Tinylink.objects.get(pk=link.pk).validation_error, "")
        link.long_url = "http://www.a1b2c3d4e5000.com/"
        link.save()
        validate_long_url(link)
        self.assertEqual(
            Tinylink.objects.get(pk=link.pk).validation_error,
            "URL not accessible.")
        #---------------------------------------------
        # IMPORTANT: Start runserver before testing.
        #---------------------------------------------
        try:
            urlopen('http://localhost:8000/admin/')
        except URLError:
            self.fail('Start runserver before testing.')
        link.long_url = "http://localhost:8000/redirect-fail/"
        link.save()
        validate_long_url(link)
        self.assertTrue(Tinylink.objects.get(pk=link.pk).is_broken)
        link.long_url = "http://localhost:8000/redirect-test/"
        link.save()
        validate_long_url(link)
        self.assertTrue(Tinylink.objects.get(pk=link.pk).is_broken)

        link.last_checked = timezone.now() - timezone.timedelta(minutes=61)
        self.assertTrue(link.can_be_validated())
Пример #6
0
    def test_model(self):
        obj = TinylinkFactory()
        self.assertTrue(obj.pk)

        link = TinylinkFactory(long_url="http://www.google.com/",
                               short_url="v4bG4S")
        validate_long_url(link)
        self.assertEqual(Tinylink.objects.get(pk=link.pk).validation_error, "")
        link.long_url = "http://www.a1b2c3d4e5000.com/"
        link.save()
        validate_long_url(link)
        self.assertEqual(Tinylink.objects.get(pk=link.pk).validation_error,
                         "URL not accessible.")
        #---------------------------------------------
        # IMPORTANT: Start runserver before testing.
        #---------------------------------------------
        try:
            urlopen('http://localhost:8000/admin/')
        except URLError:
            self.fail('Start runserver before testing.')
        link.long_url = "http://localhost:8000/redirect-fail/"
        link.save()
        validate_long_url(link)
        self.assertTrue(Tinylink.objects.get(pk=link.pk).is_broken)
        link.long_url = "http://localhost:8000/redirect-test/"
        link.save()
        validate_long_url(link)
        self.assertTrue(Tinylink.objects.get(pk=link.pk).is_broken)

        link.last_checked = timezone.now() - timezone.timedelta(minutes=61)
        self.assertTrue(link.can_be_validated())
Пример #7
0
    def test_model(self):
        obj = TinylinkFactory()
        self.assertTrue(obj.pk)

        link = TinylinkFactory(long_url="http://www.google.com/",
                               short_url="v4bG4S")
        validate_long_url(link)
        self.assertEqual(Tinylink.objects.get(pk=link.pk).validation_error, "")
        link.long_url = "http://www.a1b2c3d4e5000.com:8888/"
        link.save()
        validate_long_url(link)
        self.assertEqual(Tinylink.objects.get(pk=link.pk).validation_error,
                         "URL not accessible.")
        link.long_url = "%s/redirect-fail/" % self.live_server_url
        link.save()
        validate_long_url(link)
        self.assertTrue(Tinylink.objects.get(pk=link.pk).is_broken)
        link.long_url = "%s/redirect-test/" % self.live_server_url
        link.save()
        validate_long_url(link)
        self.assertTrue(Tinylink.objects.get(pk=link.pk).is_broken)

        link.last_checked = timezone.now() - timezone.timedelta(minutes=61)
        self.assertTrue(link.can_be_validated())
Пример #8
0
 def save(self, *args, **kwargs):
     if not self.instance.pk:
         self.instance.user = self.user
     self.instance = super(TinylinkForm, self).save(*args, **kwargs)
     return validate_long_url(self.instance)
Пример #9
0
 def save(self, *args, **kwargs):
     if not self.instance.pk:
         self.instance.user = self.user
     self.instance = super(TinylinkForm, self).save(*args, **kwargs)
     return validate_long_url(self.instance)