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)