diff --git a/binder/tests/testForms.py b/binder/tests/testForms.py index fad1806..c8b0b29 100644 --- a/binder/tests/testForms.py +++ b/binder/tests/testForms.py @@ -1,42 +1,75 @@ from django.test import TestCase from binder import forms +from binder.models import Key, BindServer class Form_Tests(TestCase): - def test_Valid_FormAddRecord(self): - """Test FormAddRecord with valid data, with/without create_reverse.""" - form_data = {"dns_server": "server1", + + def setUp(self): + self.ns1_key = Key.objects.create(name='test1', data='testdata1234', algorithm='MD5') + self.ns1 = BindServer.objects.create(hostname='ns1.test.net', + statistics_port=8053, + default_transfer_key=self.ns1_key) + self.ns2_key = Key.objects.create(name='test2', data='testdata1234', algorithm='MD5') + self.ns2 = BindServer.objects.create(hostname='ns2.test.net', + statistics_port=8053, + default_transfer_key=self.ns2_key) + + def test_Valid_FormAddRecordWithoutReverseRecord(self): + """Test FormAddRecord with valid data, without create_reverse.""" + form_data = {"dns_server": self.ns1, "record_name": "record1", "record_type": "A", "zone_name": "domain.local", "record_data": "10.254.254.254", "ttl": 3600, - "key_name": None, + "key_name": '1', "create_reverse": False} testform_1 = forms.FormAddForwardRecord(form_data) self.assertTrue(testform_1.is_valid()) + def test_Valid_FormAddRecordWithoutTSIGKey(self): + """Test FormAddRecord with invalid data, missing a TSIG key selection.""" + form_data = {"dns_server": self.ns1, + "record_name": "record1", + "record_type": "A", + "zone_name": "domain.local", + "record_data": "10.254.254.254", + "ttl": 3600, + "key_name": '', + "create_reverse": False} + + expected_form_errors = {"key_name": [u"This field is required."]} + testform_1 = forms.FormAddForwardRecord(form_data) + testform_1.is_valid() + self.assertTrue(testform_1.errors) + self.assertEquals(testform_1.errors, expected_form_errors) + + def test_Valid_FormAddRecordWithReverseRecord(self): + """Test FormAddRecord with valid data, with 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, + "key_name": '1', "create_reverse": True} testform_2 = forms.FormAddForwardRecord(form_data) self.assertTrue(testform_2.is_valid()) + def test_Valid_FormAddReverseRecord(self): + """Test FormAddReverseRecord with valid data.""" 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} + "key_name": '1'} reverseform_1 = forms.FormAddReverseRecord(form_data) reverseform_1.is_valid() self.assertTrue(reverseform_1.is_valid()) @@ -84,7 +117,8 @@ class Form_Tests(TestCase): """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"]'} + "rr_list": '[u"record1.domain1.local", u"record2.domain1.local"]', + "key_name": "1"} testform_1 = forms.FormDeleteRecord(delete_dict) testform_1.is_valid self.assertFalse(testform_1.errors) @@ -94,13 +128,14 @@ class Form_Tests(TestCase): self.assertTrue(testform_1.errors) def test_MissingName_AddCnameForm(self): - """Attempt to submit a cname add form missing the cname value.""" + """Attempt to submit a cname add form missing the cname and tsig key.""" 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."]} + expected_form_errors = {"cname": [u"This field is required."], + "key_name": [u"This field is required."]} testform_1 = forms.FormAddCnameRecord(form_dict) testform_1.is_valid() self.assertTrue(testform_1.errors)