binder/binder/tests/testForms.py

106 lines
4.6 KiB
Python

from django.test import TestCase
from binder import forms
class Form_Tests(TestCase):
def test_Valid_FormAddRecord(self):
"""Test FormAddRecord with valid data, with/without create_reverse."""
form_data = {"dns_server": "server1",
"record_name": "record1",
"record_type": "A",
"zone_name": "domain.local",
"record_data": "10.254.254.254",
"ttl": 3600,
"key_name": None,
"create_reverse": False}
testform_1 = forms.FormAddForwardRecord(form_data)
self.assertTrue(testform_1.is_valid())
form_data = {"dns_server": "server1",
"record_name": "record1",
"record_type": "A",
"zone_name": "domain.local",
"record_data": "10.254.254.254",
"ttl": 3600,
"key_name": None,
"create_reverse": True}
testform_2 = forms.FormAddForwardRecord(form_data)
self.assertTrue(testform_2.is_valid())
form_data = {"dns_server": "server1",
"record_name": 41,
"record_type": "PTR",
"zone_name": "1.254.10.in-addr.arpa",
"record_data": "reverse41.domain1.local",
"ttl": 3600,
"key_name": None}
reverseform_1 = forms.FormAddReverseRecord(form_data)
reverseform_1.is_valid()
self.assertTrue(reverseform_1.is_valid())
def test_MissingData_FormAddRecord(self):
"""Submit FormAddRecord with missing record_data."""
form_data = {"dns_server": "server1",
"record_name": "record1",
"record_type": "A",
"zone_name": "domain.local",
"record_data": "",
"ttl": 300,
"key_name": None,
"create_reverse": True}
expected_form_errors = {"record_data": [u"This field is required."]}
testform = forms.FormAddForwardRecord(form_data)
testform.is_valid()
self.assertFalse(testform.is_valid())
self.assertEquals(expected_form_errors, testform.errors)
def test_InvalidValue_FormAddRecord(self):
"""Pass FormAddRecord invalid values, compare error response dicts."""
form_data = {"dns_server": "server1",
"record_name": "record1$$$",
"record_type": 123,
"zone_name": "domain.local",
"record_data": "A.B.C.D",
"ttl": "A",
"key_name": None,
"create_reverse": True}
expected_form_errors = {"record_data": [u"Enter a valid IPv4 or IPv6 address."],
"record_name": [u"Enter a valid value."],
"record_type": [u"Select a valid choice. 123 is not one of the available choices."],
"ttl": [u'Select a valid choice. A is not one of the available choices.']}
testform_2 = forms.FormAddForwardRecord(form_data)
testform_2.is_valid()
self.assertFalse(testform_2.is_valid())
self.assertEquals(expected_form_errors, testform_2.errors)
def test_Validation_FormDeleteRecord(self):
"""Validate good data in the FormDeleteRecord form."""
delete_dict = {"dns_server": "foo.net",
"zone_name": "domain1.local",
"rr_list": '[u"record1.domain1.local", u"record2.domain1.local"]'}
testform_1 = forms.FormDeleteRecord(delete_dict)
testform_1.is_valid
self.assertFalse(testform_1.errors)
delete_dict["rr_list"] = '[record1.domain1.local", u"record2.domain1.local"]'
testform_1 = forms.FormDeleteRecord(delete_dict)
testform_1.is_valid
self.assertTrue(testform_1.errors)
def test_MissingName_AddCnameForm(self):
"""Attempt to submit a cname add form missing the cname value."""
form_dict = {"dns_server": "testserver1",
"zone_name": "domain1.local",
"originating_record": "record1.domain1.local",
"cname": "",
"ttl": 300}
expected_form_errors = {"cname": [u"This field is required."]}
testform_1 = forms.FormAddCnameRecord(form_dict)
testform_1.is_valid()
self.assertTrue(testform_1.errors)
self.assertEquals(testform_1.errors, expected_form_errors)