示例#1
0
    def test_basic_vardefinition(self):
        text = '''
            directory "/var/na/named";
            aaa master;
            check-names slave ignore;
            include "named.local.conf";
        '''
        result = Parser.parse_string(text)
        self.assertEqual(result[0].node_type, 'directory')
        self.assertEqual(result[0].value, '/var/na/named')

        self.assertIsInstance(result[1], structures.UnknowNode)
        self.assertEqual(result[1].node_type, 'aaa')
        self.assertEqual(result[1].value, 'master')

        self.assertEqual(result[2].node_type, 'check-names')
        self.assertEqual(result[2].target, 'slave')
        self.assertEqual(str(result[2]), 'check-names slave ignore;')

        include_expression = result[3]
        self.assertTrue(isinstance(include_expression, structures.Include))
        self.assertEqual(include_expression['node_type'], 'include')
        self.assertEqual(include_expression['value'], 'named.local.conf')
        self.assertEqual(str(include_expression),
                         'include "named.local.conf";')
    def test_has_minimum_requirement(self):
        values_in_option = self.option_node.value
        values_not_contained = [req for req in TestOptionsNode.REQUIRE_NODE_TYPES if req not in values_in_option]
        self.assertEqual(values_not_contained, [])

        invalid_node = Parser.parse_string('''
        options {
            directory "/var/na/named";
            check-names slave ignore;
            hoge fooo;
        };''')
        invalid_options_value = invalid_node[0].value
        values_not_contained = [req for req in TestOptionsNode.REQUIRE_NODE_TYPES if req not in invalid_options_value]
        self.assertNotEqual(values_not_contained, [])
示例#3
0
 def test_option_definition(self):
     text = '''
     options {
         directory "/var/na/named";
         check-names slave ignore;
     };
     aaa master;
     '''
     result = Parser.parse_string(text)
     option_node = result[0]
     self.assertEqual(option_node.node_type, 'options')
     values_in_option = option_node['value']
     self.assertEqual(values_in_option.values[0].node_type, 'directory')
     self.assertEqual(values_in_option.values[0].value, '/var/na/named')
示例#4
0
 def test_option_definition(self):
     text = """
     options {
         directory "/var/na/named";
         check-names slave ignore;
     };
     aaa master;
     """
     result = Parser.parse_string(text)
     option_node = result[0]
     self.assertEqual(option_node.node_type, "options")
     values_in_option = option_node["value"]
     self.assertEqual(values_in_option.values[0].node_type, "directory")
     self.assertEqual(values_in_option.values[0].value, "/var/na/named")
示例#5
0
 def test_stringfy(self):
     text = '''
     options {
         directory "/var/na/named";
         check-names slave ignore;
     };
     aaa master;
     '''
     result = Parser.parse_string(text)
     option_node = result[0]
     self.assertEqual(
         str(option_node).replace(' ', '').replace('\n', ''), '''options {
             directory "/var/na/named";
             check-names slave ignore;
         };'''.replace(' ', '').replace('\n', ''))
    def test_hasnot_uninvited_values(self):
        values_in_option = self.option_node.value
        values_not_contained = [var for var in values_in_option if var.node_type not in TestOptionsNode.REQUIRE_NODE_TYPES]
        self.assertEqual(values_not_contained, [])

        invalid_node = Parser.parse_string('''
        options {
            directory "/var/na/named";
            check-names slave ignore;
            hoge fooo;
        };''')
        invalid_options_value = invalid_node[0].value
        values_not_contained = [
            var for var in invalid_options_value
            if var.node_type not in TestOptionsNode.REQUIRE_NODE_TYPES
        ]
        self.assertNotEqual(values_not_contained, [])
示例#7
0
 def test_zone_definition(self):
     text = '''
     zone "zone_name" {
         directory "/var/na/named";
         check-names slave ignore;
     };
     aaa master;
     '''
     result = Parser.parse_string(text)
     zone_node = result[0]
     self.assertEqual(zone_node.node_type, 'zone')
     self.assertEqual(zone_node.name, 'zone_name')
     values_in_zone = zone_node['value']
     self.assertEqual(values_in_zone.values[0].node_type, 'directory')
     self.assertEqual(values_in_zone.values[0].value, '/var/na/named')
     self.assertEqual(values_in_zone.values[1].node_type, 'check-names')
     self.assertEqual(values_in_zone.values[1].target, 'slave')
     self.assertEqual(values_in_zone.values[1].value, 'ignore')
示例#8
0
 def test_zone_definition(self):
     text = """
     zone "zone_name" {
         directory "/var/na/named";
         check-names slave ignore;
     };
     aaa master;
     """
     result = Parser.parse_string(text)
     zone_node = result[0]
     self.assertEqual(zone_node.node_type, "zone")
     self.assertEqual(zone_node.name, "zone_name")
     values_in_zone = zone_node["value"]
     self.assertEqual(values_in_zone.values[0].node_type, "directory")
     self.assertEqual(values_in_zone.values[0].value, "/var/na/named")
     self.assertEqual(values_in_zone.values[1].node_type, "check-names")
     self.assertEqual(values_in_zone.values[1].target, "slave")
     self.assertEqual(values_in_zone.values[1].value, "ignore")
示例#9
0
    def test_hasnot_uninvited_values(self):
        values_in_option = self.option_node.value
        values_not_contained = [
            var for var in values_in_option
            if var.node_type not in TestOptionsNode.REQUIRE_NODE_TYPES
        ]
        self.assertEqual(values_not_contained, [])

        invalid_node = Parser.parse_string('''
        options {
            directory "/var/na/named";
            check-names slave ignore;
            hoge fooo;
        };''')
        invalid_options_value = invalid_node[0].value
        values_not_contained = [
            var for var in invalid_options_value
            if var.node_type not in TestOptionsNode.REQUIRE_NODE_TYPES
        ]
        self.assertNotEqual(values_not_contained, [])
示例#10
0
    def test_has_minimum_requirement(self):
        values_in_option = self.option_node.value
        values_not_contained = [
            req for req in TestOptionsNode.REQUIRE_NODE_TYPES
            if req not in values_in_option
        ]
        self.assertEqual(values_not_contained, [])

        invalid_node = Parser.parse_string('''
        options {
            directory "/var/na/named";
            check-names slave ignore;
            hoge fooo;
        };''')
        invalid_options_value = invalid_node[0].value
        values_not_contained = [
            req for req in TestOptionsNode.REQUIRE_NODE_TYPES
            if req not in invalid_options_value
        ]
        self.assertNotEqual(values_not_contained, [])
示例#11
0
 def test_acl_vardefinition(self):
     text = """
     acl "acl_test" {
         1.1.1.1;
         1.1.1.2;
         1.1.1.3;
         1.1.1.4;
     };
     aaa master;
     """
     result = Parser.parse_string(text)
     acl_node = result[0]
     self.assertEqual(acl_node.node_type, "acl")
     self.assertEqual(acl_node.name, "acl_test")
     values_in_acl = acl_node["value"]
     self.assertEqual(values_in_acl.values[0], "1.1.1.1")
     self.assertEqual(values_in_acl.values[1], "1.1.1.2")
     self.assertEqual(
         str(values_in_acl).replace("\n", "").replace(" ", ""), """{1.1.1.1;1.1.1.2;1.1.1.3;1.1.1.4;}"""
     )
示例#12
0
 def test_acl_vardefinition(self):
     text = '''
     acl "acl_test" {
         1.1.1.1;
         1.1.1.2;
         1.1.1.3;
         1.1.1.4;
     };
     aaa master;
     '''
     result = Parser.parse_string(text)
     acl_node = result[0]
     self.assertEqual(acl_node.node_type, 'acl')
     self.assertEqual(acl_node.name, 'acl_test')
     values_in_acl = acl_node['value']
     self.assertEqual(values_in_acl.values[0], '1.1.1.1')
     self.assertEqual(values_in_acl.values[1], '1.1.1.2')
     self.assertEqual(
         str(values_in_acl).replace('\n', '').replace(' ', ''),
         '''{1.1.1.1;1.1.1.2;1.1.1.3;1.1.1.4;}''')
示例#13
0
 def test_stringfy(self):
     text = """
     options {
         directory "/var/na/named";
         check-names slave ignore;
     };
     aaa master;
     """
     result = Parser.parse_string(text)
     option_node = result[0]
     self.assertEqual(
         str(option_node).replace(" ", "").replace("\n", ""),
         """options {
             directory "/var/na/named";
             check-names slave ignore;
         };""".replace(
             " ", ""
         ).replace(
             "\n", ""
         ),
     )
示例#14
0
    def test_basic_vardefinition(self):
        text = """
            directory "/var/na/named";
            aaa master;
            check-names slave ignore;
            include "named.local.conf";
        """
        result = Parser.parse_string(text)
        self.assertEqual(result[0].node_type, "directory")
        self.assertEqual(result[0].value, "/var/na/named")

        self.assertIsInstance(result[1], structures.UnknowNode)
        self.assertEqual(result[1].node_type, "aaa")
        self.assertEqual(result[1].value, "master")

        self.assertEqual(result[2].node_type, "check-names")
        self.assertEqual(result[2].target, "slave")
        self.assertEqual(str(result[2]), "check-names slave ignore;")

        include_expression = result[3]
        self.assertTrue(isinstance(include_expression, structures.Include))
        self.assertEqual(include_expression["node_type"], "include")
        self.assertEqual(include_expression["value"], "named.local.conf")
        self.assertEqual(str(include_expression), 'include "named.local.conf";')
 def setUp(self):
     with open(path.dirname(__file__) + '/resources/named.conf') as f:
         text = f.read()
     self.result = Parser.parse_string(text)
     self.option_node = self.result[1]  # line 0 is comment
示例#16
0
 def setUp(self):
     with open(path.dirname(__file__) + '/resources/named.conf') as f:
         text = f.read()
     self.prepared_named = Parser.parse_string(text)
示例#17
0
 def setUp(self):
     with open(path.dirname(__file__) + '/resources/named.conf') as f:
         text = f.read()
     self.result = Parser.parse_string(text)
     self.option_node = self.result[1]  # line 0 is comment
示例#18
0
 def setUp(self):
     self.result = Parser.parse_file(
         path.dirname(__file__) + '/resources/named.conf')
示例#19
0
 def setUp(self):
     with open(path.dirname(__file__) + "/resources/named.conf") as f:
         text = f.read()
     self.prepared_named = Parser.parse_string(text)
 def setUp(self):
     self.result = Parser.parse_file(path.dirname(__file__) + '/resources/named.conf')