BIND 10 trac1790, updated. f3b4396b199542139c85bf371acd8be2d9736896 [1790] Add more testcases for missing keys
BIND 10 source code commits
bind10-changes at lists.isc.org
Thu May 10 04:01:48 UTC 2012
The branch, trac1790 has been updated
via f3b4396b199542139c85bf371acd8be2d9736896 (commit)
via ab0bf10460682fdc9052903244798e113b9503d5 (commit)
via c7bc581f04389c459ed1eb791838dc197aaf118d (commit)
from 2ed12c96e717771922cd2361ec2226ae08b77ac6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f3b4396b199542139c85bf371acd8be2d9736896
Author: Mukund Sivaraman <muks at isc.org>
Date: Thu May 10 09:30:50 2012 +0530
[1790] Add more testcases for missing keys
Strictly, this is not necessary as the spec file schema would check for
it.
commit ab0bf10460682fdc9052903244798e113b9503d5
Author: Mukund Sivaraman <muks at isc.org>
Date: Thu May 10 09:20:08 2012 +0530
[1790] Use appropriate boolean assert calls
commit c7bc581f04389c459ed1eb791838dc197aaf118d
Author: Mukund Sivaraman <muks at isc.org>
Date: Thu May 10 09:18:04 2012 +0530
[1790] Update testcase descriptions
-----------------------------------------------------------------------
Summary of changes:
src/bin/xfrin/tests/xfrin_test.py | 140 +++++++++++++++++++++++++++----------
src/bin/xfrin/xfrin.py.in | 6 ++
2 files changed, 109 insertions(+), 37 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/bin/xfrin/tests/xfrin_test.py b/src/bin/xfrin/tests/xfrin_test.py
index 45019d3..b4fcefb 100644
--- a/src/bin/xfrin/tests/xfrin_test.py
+++ b/src/bin/xfrin/tests/xfrin_test.py
@@ -2869,21 +2869,21 @@ class TestXfrinProcess(unittest.TestCase):
self.assertEqual(len(transfers), self.__created_connections)
self.assertEqual([published], self.__published)
if published == XFRIN_OK:
- self.assertEqual(True, self._module_cc.get_called)
- self.assertEqual(True, self._module_cc.get_called_correctly)
+ self.assertTrue(self._module_cc.get_called)
+ self.assertTrue(self._module_cc.get_called_correctly)
else:
- self.assertEqual(False, self._module_cc.get_called)
- self.assertEqual(False, self._module_cc.get_called_correctly)
+ self.assertFalse(self._module_cc.get_called)
+ self.assertFalse(self._module_cc.get_called_correctly)
def test_ixfr_ok(self):
"""
Everything OK the first time, over IXFR.
"""
self.__do_test([XFRIN_OK], [RRType.IXFR()], RRType.IXFR())
- self.assertEqual(False, self._send_cc_session.send_called)
- self.assertEqual(False, self._send_cc_session.send_called_correctly)
- self.assertEqual(False, self._send_cc_session.recv_called)
- self.assertEqual(False, self._send_cc_session.recv_called_correctly)
+ self.assertFalse(self._send_cc_session.send_called)
+ self.assertFalse(self._send_cc_session.send_called_correctly)
+ self.assertFalse(self._send_cc_session.recv_called)
+ self.assertFalse(self._send_cc_session.recv_called_correctly)
def test_axfr_ok(self):
"""
@@ -2917,68 +2917,134 @@ class TestXfrinProcess(unittest.TestCase):
def test_inmem_ok(self):
"""
- Inmem configuration 1.
+ Inmem configuration where all the configuration is just right
+ for loadzone to be sent to b10-auth (origin is the name received
+ by xfrin, filetype is sqlite3, type is memory and class is the
+ one received by xfrin).
"""
self._module_cc.config = [{'zones': [{'origin': 'example.org', 'filetype': 'sqlite3',
'file': 'data/inmem-xfrin.sqlite3'}],
'type': 'memory', 'class': 'IN'}]
self.__do_test([XFRIN_OK], [RRType.IXFR()], RRType.IXFR())
- self.assertEqual(True, self._send_cc_session.send_called)
- self.assertEqual(True, self._send_cc_session.send_called_correctly)
- self.assertEqual(True, self._send_cc_session.recv_called)
- self.assertEqual(True, self._send_cc_session.recv_called_correctly)
+ self.assertTrue(self._send_cc_session.send_called)
+ self.assertTrue(self._send_cc_session.send_called_correctly)
+ self.assertTrue(self._send_cc_session.recv_called)
+ self.assertTrue(self._send_cc_session.recv_called_correctly)
- def test_inmem_not_memory(self):
+ def test_inmem_datasource_type_not_memory(self):
"""
- Inmem configuration 2.
+ Inmem configuration where the datasource type is not memory. In
+ this case, loadzone should not be sent to b10-auth.
"""
self._module_cc.config = [{'zones': [{'origin': 'example.org', 'filetype': 'sqlite3',
'file': 'data/inmem-xfrin.sqlite3'}],
'type': 'punched-card', 'class': 'IN'}]
self.__do_test([XFRIN_OK], [RRType.IXFR()], RRType.IXFR())
- self.assertEqual(False, self._send_cc_session.send_called)
- self.assertEqual(False, self._send_cc_session.send_called_correctly)
- self.assertEqual(False, self._send_cc_session.recv_called)
- self.assertEqual(False, self._send_cc_session.recv_called_correctly)
+ self.assertFalse(self._send_cc_session.send_called)
+ self.assertFalse(self._send_cc_session.send_called_correctly)
+ self.assertFalse(self._send_cc_session.recv_called)
+ self.assertFalse(self._send_cc_session.recv_called_correctly)
- def test_inmem_not_sqlite3(self):
+ def test_inmem_datasource_type_is_missing(self):
"""
- Inmem configuration 3.
+ Inmem configuration where the datasource type is missing. In
+ this case, loadzone should not be sent to b10-auth.
+ """
+ self._module_cc.config = [{'zones': [{'origin': 'example.org', 'filetype': 'sqlite3',
+ 'file': 'data/inmem-xfrin.sqlite3'}],
+ 'class': 'IN'}]
+ self.__do_test([XFRIN_OK], [RRType.IXFR()], RRType.IXFR())
+ self.assertFalse(self._send_cc_session.send_called)
+ self.assertFalse(self._send_cc_session.send_called_correctly)
+ self.assertFalse(self._send_cc_session.recv_called)
+ self.assertFalse(self._send_cc_session.recv_called_correctly)
+
+ def test_inmem_backend_type_not_sqlite3(self):
+ """
+ Inmem configuration where the datasource backing file is not of
+ type sqlite3. In this case, loadzone should not be sent to
+ b10-auth.
"""
self._module_cc.config = [{'zones': [{'origin': 'example.org', 'filetype': 'postgresql',
'file': 'data/inmem-xfrin.sqlite3'}],
'type': 'memory', 'class': 'IN'}]
self.__do_test([XFRIN_OK], [RRType.IXFR()], RRType.IXFR())
- self.assertEqual(False, self._send_cc_session.send_called)
- self.assertEqual(False, self._send_cc_session.send_called_correctly)
- self.assertEqual(False, self._send_cc_session.recv_called)
- self.assertEqual(False, self._send_cc_session.recv_called_correctly)
+ self.assertFalse(self._send_cc_session.send_called)
+ self.assertFalse(self._send_cc_session.send_called_correctly)
+ self.assertFalse(self._send_cc_session.recv_called)
+ self.assertFalse(self._send_cc_session.recv_called_correctly)
+
+ def test_inmem_backend_type_is_missing(self):
+ """
+ Inmem configuration where the datasource backing file type is
+ not set. In this case, loadzone should not be sent to b10-auth.
+ """
+ self._module_cc.config = [{'zones': [{'origin': 'example.org',
+ 'file': 'data/inmem-xfrin.sqlite3'}],
+ 'type': 'memory', 'class': 'IN'}]
+ self.__do_test([XFRIN_OK], [RRType.IXFR()], RRType.IXFR())
+ self.assertFalse(self._send_cc_session.send_called)
+ self.assertFalse(self._send_cc_session.send_called_correctly)
+ self.assertFalse(self._send_cc_session.recv_called)
+ self.assertFalse(self._send_cc_session.recv_called_correctly)
- def test_inmem_not_of_same_class(self):
+ def test_inmem_class_is_different(self):
"""
- Inmem configuration 4.
+ Inmem configuration where the datasource class does not match
+ the received class. In this case, loadzone should not be sent to
+ b10-auth.
"""
self._module_cc.config = [{'zones': [{'origin': 'example.org', 'filetype': 'sqlite3',
'file': 'data/inmem-xfrin.sqlite3'}],
'type': 'memory', 'class': 'XX'}]
self.__do_test([XFRIN_OK], [RRType.IXFR()], RRType.IXFR())
- self.assertEqual(False, self._send_cc_session.send_called)
- self.assertEqual(False, self._send_cc_session.send_called_correctly)
- self.assertEqual(False, self._send_cc_session.recv_called)
- self.assertEqual(False, self._send_cc_session.recv_called_correctly)
+ self.assertFalse(self._send_cc_session.send_called)
+ self.assertFalse(self._send_cc_session.send_called_correctly)
+ self.assertFalse(self._send_cc_session.recv_called)
+ self.assertFalse(self._send_cc_session.recv_called_correctly)
- def test_inmem_not_present(self):
+ def test_inmem_class_is_missing(self):
"""
- Inmem configuration 5.
+ Inmem configuration where the datasource class is missing. In
+ this case, we assume the IN class and loadzone may be sent to
+ b10-auth if everything else matches.
+ """
+ self._module_cc.config = [{'zones': [{'origin': 'example.org', 'filetype': 'sqlite3',
+ 'file': 'data/inmem-xfrin.sqlite3'}],
+ 'type': 'memory'}]
+ self.__do_test([XFRIN_OK], [RRType.IXFR()], RRType.IXFR())
+ self.assertTrue(self._send_cc_session.send_called)
+ self.assertTrue(self._send_cc_session.send_called_correctly)
+ self.assertTrue(self._send_cc_session.recv_called)
+ self.assertTrue(self._send_cc_session.recv_called_correctly)
+
+ def test_inmem_name_doesnt_match(self):
+ """
+ Inmem configuration where the origin does not match the received
+ name. In this case, loadzone should not be sent to b10-auth.
"""
self._module_cc.config = [{'zones': [{'origin': 'isc.org', 'filetype': 'sqlite3',
'file': 'data/inmem-xfrin.sqlite3'}],
'type': 'memory', 'class': 'IN'}]
self.__do_test([XFRIN_OK], [RRType.IXFR()], RRType.IXFR())
- self.assertEqual(False, self._send_cc_session.send_called)
- self.assertEqual(False, self._send_cc_session.send_called_correctly)
- self.assertEqual(False, self._send_cc_session.recv_called)
- self.assertEqual(False, self._send_cc_session.recv_called_correctly)
+ self.assertFalse(self._send_cc_session.send_called)
+ self.assertFalse(self._send_cc_session.send_called_correctly)
+ self.assertFalse(self._send_cc_session.recv_called)
+ self.assertFalse(self._send_cc_session.recv_called_correctly)
+
+ def test_inmem_name_is_missing(self):
+ """
+ Inmem configuration where the origin is missing. In this case,
+ loadzone should not be sent to b10-auth.
+ """
+ self._module_cc.config = [{'zones': [{'filetype': 'sqlite3',
+ 'file': 'data/inmem-xfrin.sqlite3'}],
+ 'type': 'memory', 'class': 'IN'}]
+ self.__do_test([XFRIN_OK], [RRType.IXFR()], RRType.IXFR())
+ self.assertFalse(self._send_cc_session.send_called)
+ self.assertFalse(self._send_cc_session.send_called_correctly)
+ self.assertFalse(self._send_cc_session.recv_called)
+ self.assertFalse(self._send_cc_session.recv_called_correctly)
class TestFormatting(unittest.TestCase):
# If the formatting functions are moved to a more general library
diff --git a/src/bin/xfrin/xfrin.py.in b/src/bin/xfrin/xfrin.py.in
index 20769c5..a1de6bb 100755
--- a/src/bin/xfrin/xfrin.py.in
+++ b/src/bin/xfrin/xfrin.py.in
@@ -1257,6 +1257,8 @@ def _do_auth_loadzone(server, zone_name, zone_class):
if is_default:
return
for d in datasources:
+ if "type" not in d:
+ continue
try:
if "class" in d:
dclass = RRClass(d["class"])
@@ -1270,6 +1272,10 @@ def _do_auth_loadzone(server, zone_name, zone_class):
for zone in d["zones"]:
if "filetype" not in zone:
continue
+ if "origin" not in zone:
+ continue
+ if "filetype" not in zone:
+ continue
try:
name = Name(zone["origin"])
except (EmptyLabel, TooLongLabel, BadLabelType, BadEscape, TooLongName, IncompleteName):
More information about the bind10-changes
mailing list