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)
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
def url_match_run(request): url = request.GET['url'] result, error = url_transformer.run(url, dry=True) return {'result': result, 'error': error}