def test_run(self):
        url = 'http://www.com/test'
        result, error = url_transformer.run(url)
        ok_(not error)
        eq_(result, url)

        match1 = URLMatch.objects.create(name='Duff 1', string='test')
        URLTransform.objects.create(match=match1,
                                    find='^test',
                                    replace_with="WON'T")
        URLTransform.objects.create(match=match1,
                                    find='test$',
                                    replace_with='WORK')

        match2 = URLMatch.objects.create(name='Secure', string='://')
        URLTransform.objects.create(
            match=match2,
            find='://',
            replace_with="://foo:{{ password('foo') }}@")

        result, error = url_transformer.run(url)
        ok_(not error)
        eq_(result, 'http://*****:*****@www.com/WORK')

        result, error = url_transformer.run(url, dry=True)
        ok_(not error)
        ok_(result.startswith('http://foo:'))
        ok_('bar' not in result)
    def test_run(self):
        url = 'http://www.com/test'
        result, error = url_transformer.run(url)
        ok_(not error)
        eq_(result, url)

        match1 = URLMatch.objects.create(
            name='Duff 1',
            string='test'
        )
        URLTransform.objects.create(
            match=match1,
            find='^test',
            replace_with="WON'T"
        )
        URLTransform.objects.create(
            match=match1,
            find='test$',
            replace_with='WORK'
        )

        match2 = URLMatch.objects.create(
            name='Secure',
            string='://'
        )
        URLTransform.objects.create(
            match=match2,
            find='://',
            replace_with="://foo:{{ password('foo') }}@"
        )

        result, error = url_transformer.run(url)
        ok_(not error)
        eq_(
            result,
            'http://*****:*****@www.com/WORK'
        )

        result, error = url_transformer.run(url, dry=True)
        ok_(not error)
        ok_(result.startswith('http://foo:'))
        ok_('bar' not in result)
Example #3
0
 def clean_url(self):
     # annoyingly, we can't use forms.URLField since it barfs on
     # Basic Auth urls. Instead, let's just make some basic validation
     # here
     value = self.cleaned_data['url']
     if ' ' in value or '://' not in value:
         raise forms.ValidationError('Not a valid URL')
     value, error = url_transformer.run(value)
     if error:
         raise forms.ValidationError(error)
     return value
Example #4
0
 def clean_url(self):
     # annoyingly, we can't use forms.URLField since it barfs on
     # Basic Auth urls. Instead, let's just make some basic validation
     # here
     value = self.cleaned_data['url']
     if ' ' in value or '://' not in value:
         raise forms.ValidationError('Not a valid URL')
     value, error = url_transformer.run(value)
     if error:
         raise forms.ValidationError(error)
     return value
Example #5
0
def url_match_run(request):
    url = request.GET['url']
    result, error = url_transformer.run(url, dry=True)
    return {'result': result, 'error': error}