ich teste einige Sachen in einer Django App mit Selenium. Bei dem Test auf ValidationError steh ich gerad auf dem Schlauch. Der Test läuft zwar durch, aber wenn ich über
Code: Alles auswählen
name.send_keys('test')
ich möchte prüfen, dass die Fehlermeldung dem User angezeigt wird, also dass er in die angegebenen Fehler eine Eingabe vornehmen muss:
der Test:
Code: Alles auswählen
def test_empty_input_isnot_allowed(self):
self.browser.get(self.live_server_url)
name = self.browser.find_element_by_id('id_name')
name.send_keys('')
self.browser.find_element_by_id('submit').click()
message = self.browser.find_element_by_css_selector('input:invalid')
self.assertTrue(message)
das ist die Form dazu:
Code: Alles auswählen
def clean_name(self):
name = self.cleaned_data('name')
if len(name) < 2:
raise forms.ValidationError("Names must have at least 2 chars ")
else:
return name
und in der View wird über is_valid() entsprechend geprüft:
Code: Alles auswählen
def post(self, request):
form = NetwrkForm(request.POST)
if form.is_valid():
form.save()
return redirect('home')
else:
entries = NetwrkEntry.objects.all().order_by('-id')
return render(
request,
'home.html',
{'entries': entries, 'form': form}
)
Hat jemand eine Idee, wo mein Fehler liegt?.
viele Grüße,
Aramis