1c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# -*-coding:utf-8 -*
2c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
3c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# Copyright (c) 2011-2015, Intel Corporation
4c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# All rights reserved.
5c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero#
6c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# Redistribution and use in source and binary forms, with or without modification,
7c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# are permitted provided that the following conditions are met:
8c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero#
9c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 1. Redistributions of source code must retain the above copyright notice, this
10c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# list of conditions and the following disclaimer.
11c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero#
12c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 2. Redistributions in binary form must reproduce the above copyright notice,
13c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# this list of conditions and the following disclaimer in the documentation and/or
14c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# other materials provided with the distribution.
15c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero#
16c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 3. Neither the name of the copyright holder nor the names of its contributors
17c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# may be used to endorse or promote products derived from this software without
18c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# specific prior written permission.
19c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero#
20c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
21c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
24c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
25c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
27c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
31c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero"""
32c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules CleroRules management testcases
33c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
34c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules CleroList of tested functions :
35c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero--------------------------
36c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - [setRule]  function
37c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - [clearRule] function
38c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - [getRule] function
39c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
40c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules CleroTest cases :
41c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero------------
42c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - Testing clearRule errors
43c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - Testing setRule errors
44c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - Testing getRule errors
45c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - Testing nominal case
46c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero"""
47c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clerofrom Util.PfwUnitTestLib import PfwTestCase
48c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clerofrom Util import ACTLogging
49c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clerolog=ACTLogging.Logger()
50c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
51c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# Test of Domains - Rules
52c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Cleroclass TestCases(PfwTestCase):
53c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def setUp(self):
54c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.pfw.sendCmd("setTuningMode", "on")
55c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.domain_name = "domain_test"
56c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.conf_1 = "conf_1"
57c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.conf_2 = "conf_2"
58c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.rule_1 = "Any{Crit_0 Includes State_0x2, Crit_1 IsNot State_1}"
59c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.rule_2 = "All{Crit_0 Includes State_0x1, Crit_1 Is State_1}"
60c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.rule_error_1 = "All{Crit_Error Includes State_0x1, Crit_1 Is State_1}"
61c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.rule_error_2 = "Any{Crit_0 Includes State_0x2, Crit_0 IsNot State_1}"
62c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.rule_error_3 = "Ay{Crit_0 Includes State_0x2, Crit_1 IsNot State_1}"
63c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.rule_error_4 = "All{Crit_0 Includes State_0x4, Crit_1 IsNot State_1}"
64c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.rule_error_5 = "All{Crit_0 Includes State_0x2, Crit_1 IsNot 1}"
65c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.rule_error_nbr = 5
66c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
67c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def tearDown(self):
68c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.pfw.sendCmd("setTuningMode", "off")
69c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
70c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def test_ClearRule_Errors(self):
71c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
72c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        Testing configuration creation error
73c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        ------------------------------------
74c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Test case description :
75c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~~~~~~~
76c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Clearing rule on a non-existent configuration
77c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Clearing rule on a non-existent domain
78c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Clearing rule with wrong parameters order
79c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Tested commands :
80c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
81c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [clearRule] function
82c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [setRule] function
83c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [getRule] function
84c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [createDomain] function
85c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [createConfiguration] function
86c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [deleteDomain] function
87c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Expected result :
88c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
89c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - all errors are detected
90c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - no rule is deleted
91c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
92c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.D(self.test_ClearRule_Errors.__doc__)
93c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New domain creation for testing purpose
94c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("New domain creation for testing purpose : %s" % (self.domain_name))
95c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createDomain]")
96c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("createDomain",self.domain_name, "")
97c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
98c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [createDomain] - Error while creating domain %s" % (self.domain_name)
99c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createDomain] correctly executed")
100c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s created" % (self.domain_name))
101c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
102c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New configurations creation for testing purpose
103c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("New configuration %s creation for domain %s for testing purpose" % (self.conf_1,self.domain_name))
104c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration]")
105c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,self.conf_1)
106c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
107c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (self.conf_1)
108c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration] correctly executed")
109c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Configuration %s created for domain %s" % (self.conf_1,self.domain_name))
110c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("New configuration %s creation for domain %s for testing purpose" % (self.conf_2,self.domain_name))
111c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration]")
112c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,self.conf_2)
113c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
114c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (self.conf_2)
115c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration] correctly executed")
116c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Configuration %s created for domain %s" % (self.conf_2,self.domain_name))
117c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
118c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # Applying rules to configurations
119c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Applying rules to configurations %s and %s from domain %s" % (self.conf_1,self.conf_2,self.domain_name))
120c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule]")
121c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("setRule",self.domain_name,self.conf_1,self.rule_1)
122c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [setRule] - Error while setting rule for configurations %s" % (self.conf_1)
123c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", "FAIL : command [setRule] - Error while setting rule for configuration %s" % (self.conf_1)
124c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule] correctly executed")
125c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("rule correctly created for configuration %s" % (self.conf_1))
126c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("setRule",self.domain_name,self.conf_2,self.rule_2)
127c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [setRule] - Error while setting rule for configurations %s" % (self.conf_2)
128c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", "FAIL : command [setRule] - Error while setting rule for configuration %s" % (self.conf_2)
129c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule] correctly executed")
130c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("rule correctly created for configuration %s" % (self.conf_2))
131c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
132c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # Clearing rule errors
133c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Clearing a rule on domain %s to a non-existent configuration" % (self.domain_name))
134c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [clearRule]")
1359368eea42a1afb01dd44110582f997115b50e742François Gaffie        out, err = self.pfw.sendCmd("clearRule",self.domain_name,"Wrong_Config_Name", expectSuccess=False)
136c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [clearRule] - Error while clearing rule on domain %s to a non-existent configuration" % (self.domain_name)
137c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out != "Done", "ERROR : command [clearRule] - Error not detected while clearing rule on domain %s to a non-existent configuration" % (self.domain_name)
138c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("error correctly detected when clearing a rule to a non-existent configuration")
139c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Clearing a rule on a non-existent domain")
140c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [clearRule]")
1419368eea42a1afb01dd44110582f997115b50e742François Gaffie        out, err = self.pfw.sendCmd("clearRule","Wrong_Domain_Name",self.conf_2, expectSuccess=False)
142c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [clearRule] - Error while clearing rule on a non-existent domain"
143c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out != "Done", "ERROR : command [clearRule] - Error not detected while clearing rule on a non-existent domain"
144c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("error correctly detected while clearing rule on a non-existent domain")
145c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Clearing a rule with wrong parameters order")
146c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [clearRule]")
1479368eea42a1afb01dd44110582f997115b50e742François Gaffie        out, err = self.pfw.sendCmd("clearRule",self.conf_1,self.domain_name, expectSuccess=False)
148c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [clearRule] - Error when clearing a rule with incorrect paramaters order"
149c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out != "Done", "ERROR : command [clearRule] - Error not detected when clearing a rule with incorrect paramaters order"
150c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("error correctly detected when clearing a rule with incorrect paramaters order on domain %s and configuration %s" % (self.domain_name,self.conf_1))
151c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
152c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Checking that no rule has been cleared
153c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("getRule",self.domain_name,self.conf_1)
154c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == self.rule_1, "FAIL : command [clearRule] - clearRule error has affected configuration %s" % (self.conf_1)
155c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("getRule",self.domain_name,self.conf_2)
156c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == self.rule_2, "FAIL : command [clearRule] - clearRule error has affected configuration %s" % (self.conf_2)
157c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [ClearRule] correctly executed, no impact due to clearing errors")
158c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("no rule removed from configurations %s and %s on domain %s" % (self.conf_1,self.conf_2,self.domain_name))
159c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
160c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New domain deletion
161c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s deletion" % (self.domain_name))
162c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [deleteDomain]")
163c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("deleteDomain",self.domain_name, "")
164c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
165c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [deleteDomain] - Error while delting domain %s" % (self.domain_name)
166c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [deleteDomain] correctly executed")
167c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s deleted" % (self.domain_name))
168c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
169c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def test_SetRule_Errors(self):
170c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
171c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        Testing setRule errors
172c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        ----------------------
173c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Test case description :
174c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~~~~~~~
175c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Setting rule on a non-existent configuration
176c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Setting rule on a non-existent domain
177c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Setting various incorrect format rules
178c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Tested commands :
179c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
180c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [setRule] function
181c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [getRule] function
182c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [createDomain] function
183c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [createConfiguration] function
184c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [deleteDomain] function
185c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Expected result :
186c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
187c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - all errors are detected
188c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - no new rule is created
189c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
190c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.D(self.test_SetRule_Errors.__doc__)
191c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New domain creation for testing purpose
192c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("New domain creation for testing purpose : %s" % (self.domain_name))
193c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createDomain]")
194c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("createDomain",self.domain_name, "")
195c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
196c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [createDomain] - Error while creating domain %s" % (self.domain_name)
197c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createDomain] correctly executed")
198c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s created" % (self.domain_name))
199c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
200c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New configuration creation for testing purpose
201c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("New configuration %s creation for domain %s for testing purpose" % (self.conf_1,self.domain_name))
202c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration]")
203c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,self.conf_1)
204c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
205c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (self.conf_1)
206c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration] correctly executed")
207c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Configuration %s created for domain %s" % (self.conf_1,self.domain_name))
208c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
209c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # setRule :basic error cases
210c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Applying a new rule on domain %s to a non-existent configuration" % (self.domain_name))
211c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule]")
2129368eea42a1afb01dd44110582f997115b50e742François Gaffie        out, err = self.pfw.sendCmd("setRule",self.domain_name,"Wrong_Config_Name",self.rule_1, expectSuccess=False)
213c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [setRule] - Error while setting rule on domain %s to a non-existent configuration" % (self.domain_name)
214c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out != "Done", "ERROR : command [setRule] - Error not detected while setting rule on domain %s to a non-existent configuration" % (self.domain_name)
215c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("error correctly detected when creating a rule to a non-existent configuration")
216c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Applying a new rule on a non-existent domain")
217c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule]")
2189368eea42a1afb01dd44110582f997115b50e742François Gaffie        out, err = self.pfw.sendCmd("setRule","Wrong_Domain_Name",self.conf_1,self.rule_1, expectSuccess=False)
219c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [setRule] - Error while setting rule on a non-existent domain"
220c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out != "Done", "ERROR : command [setRule] - Error not detected while setting rule on a non-existent domain"
221c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("error correctly detected while setting rule on a non-existent domain")
222c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Applying a new rule with incorrect format")
223c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule]")
2249368eea42a1afb01dd44110582f997115b50e742François Gaffie        out, err = self.pfw.sendCmd("setRule",self.domain_name,self.conf_1,"Wrong_Rule_Format", expectSuccess=False)
225c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [setRule] - Error when setting incorrect format rule"
226c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out != "Done", "ERROR : command [setRule] - Error not detected when setting incorrect format rule"
227c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("error correctly detected when setting incorrect format rule on domain %s and configuration %s" % (self.domain_name,self.conf_1))
228c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
229c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # setRule : various rules errors
230c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Various rules errors setting :")
231c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        for index in range (self.rule_error_nbr):
232c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            log.I("Rule error number %s" % (str(index)))
233c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            rule_name = "".join(["self.rule_error_", "_", str(index)])
2349368eea42a1afb01dd44110582f997115b50e742François Gaffie            out, err = self.pfw.sendCmd("setRule",self.domain_name,self.conf_1, rule_name, expectSuccess=False)
235c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            assert err == None, "ERROR : command [setRule] - Error when setting incorrect format rule %s" % (str(rule_name))
236c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            assert out != "Done", "ERROR : command [setRule] - Error not detected when setting incorrect format rule %s" % (str(rule_name))
237c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            log.I("error correctly detected when setting incorrect format rule on domain %s and configuration %s" % (self.domain_name,self.conf_1))
238c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
239c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Checking that no rule has been created
240c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("getRule",self.domain_name,self.conf_1)
241c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "<none>", "FAIL : command [setRule] - setRule not working for configuration %s" % (self.conf_1)
242c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule] correctly executed, no impact due to setting errors")
243c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("no rule added to configurations %s on domain %s" % (self.conf_1,self.domain_name))
244c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
245c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New domain deletion
246c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s deletion" % (self.domain_name))
247c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [deleteDomain]")
248c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("deleteDomain",self.domain_name, "")
249c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
250c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [deleteDomain] - Error while delting domain %s" % (self.domain_name)
251c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [deleteDomain] correctly executed")
252c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s deleted" % (self.domain_name))
253c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
254c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def test_GetRule_Errors(self):
255c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
256c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        Testing getRule errors
257c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        ----------------------
258c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Test case description :
259c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~~~~~~~
260c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Getting rule on a non-existent configuration
261c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Getting rule on a non-existent domain
262c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Getting rule with wrong parameters order
263c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Tested commands :
264c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
265c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [getRule] function
266c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [setRule] function
267c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [clearRule] function
268c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [createDomain] function
269c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [createConfiguration] function
270c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [deleteDomain] function
271c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Expected result :
272c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
273c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - all errors are detected
274c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
275c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.D(self.test_GetRule_Errors.__doc__)
276c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New domain creation for testing purpose
277c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("New domain creation for testing purpose : %s" % (self.domain_name))
278c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createDomain]")
279c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("createDomain",self.domain_name, "")
280c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
281c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [createDomain] - Error while creating domain %s" % (self.domain_name)
282c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createDomain] correctly executed")
283c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s created" % (self.domain_name))
284c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
285c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New configurations creation for testing purpose
286c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("New configuration %s creation for domain %s for testing purpose" % (self.conf_1,self.domain_name))
287c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration]")
288c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,self.conf_1)
289c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
290c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (self.conf_1)
291c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration] correctly executed")
292c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Configuration %s created for domain %s" % (self.conf_1,self.domain_name))
293c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("New configuration %s creation for domain %s for testing purpose" % (self.conf_2,self.domain_name))
294c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration]")
295c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,self.conf_2)
296c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
297c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (self.conf_2)
298c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration] correctly executed")
299c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Configuration %s created for domain %s" % (self.conf_2,self.domain_name))
300c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
301c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # Applying rules to configurations
302c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Applying rules to configurations %s and %s from domain %s" % (self.conf_1,self.conf_2,self.domain_name))
303c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule]")
304c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("setRule",self.domain_name,self.conf_1,self.rule_1)
305c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [setRule] - Error while setting rule for configurations %s" % (self.conf_1)
306c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", "FAIL : command [setRule] - Error while setting rule for configuration %s" % (self.conf_1)
307c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule] correctly executed")
308c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("rule correctly created for configuration %s" % (self.conf_1))
309c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("setRule",self.domain_name,self.conf_2,self.rule_2)
310c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [setRule] - Error while setting rule for configurations %s" % (self.conf_2)
311c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", "FAIL : command [setRule] - Error while setting rule for configuration %s" % (self.conf_2)
312c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule] correctly executed")
313c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("rule correctly created for configuration %s" % (self.conf_2))
314c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
315c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # Getting rule errors
316c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Getting a rule on domain %s from a non-existent configuration" % (self.domain_name))
317c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [getRule]")
3189368eea42a1afb01dd44110582f997115b50e742François Gaffie        out, err = self.pfw.sendCmd("getRule",self.domain_name,"Wrong_Config_Name", expectSuccess=False)
319c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [getRule] - Error when getting rule on domain %s from a non-existent configuration" % (self.domain_name)
320c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out != "Done", "ERROR : command [getRule] - Error not detected while getting rule on domain %s from a non-existent configuration" % (self.domain_name)
321c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("error correctly detected when getting a rule from a non-existent configuration")
322c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("getting a rule from a non-existent domain")
323c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [getRule]")
3249368eea42a1afb01dd44110582f997115b50e742François Gaffie        out, err = self.pfw.sendCmd("getRule","Wrong_Domain_Name",self.conf_2, expectSuccess=False)
325c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [getRule] - Error when getting rule from a non-existent domain"
326c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out != "Done", "ERROR : command [getRule] - Error not detected while getting rule from a non-existent domain"
327c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("error correctly detected when getting rule from a non-existent domain")
328c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("getting a rule with wrong parameters order")
329c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [getRule]")
3309368eea42a1afb01dd44110582f997115b50e742François Gaffie        out, err = self.pfw.sendCmd("getRule",self.conf_1,self.domain_name, expectSuccess=False)
331c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [getRule] - Error when getting a rule with incorrect paramaters order"
332c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out != "Done", "ERROR : command [getRule] - Error not detected when getting a rule with incorrect paramaters order"
333c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("error correctly detected when getting a rule with incorrect paramaters order on domain %s and configuration %s" % (self.domain_name,self.conf_1))
334c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
335c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New domain deletion
336c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s deletion" % (self.domain_name))
337c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [deleteDomain]")
338c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("deleteDomain",self.domain_name, "")
339c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
340c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [deleteDomain] - Error while delting domain %s" % (self.domain_name)
341c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [deleteDomain] correctly executed")
342c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s deleted" % (self.domain_name))
343c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
344c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def test_Nominal_Case(self):
345c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
346c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        Testing nominal case
347c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        --------------------
348c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Test case description :
349c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~~~~~~~
350c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - setting rules for configurations
351c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - getting rules from configurations
352c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Clear created rules
353c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Tested commands :
354c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
355c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [getRule] function
356c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [setRule] function
357c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [clearRule] function
358c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [createDomain] function
359c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [createConfiguration] function
360c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [deleteConfiguration] function
361c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [deleteDomain] function
362c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Expected result :
363c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
364c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - all operations succeed
365c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
366c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.D(self.test_Nominal_Case.__doc__)
367c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New domain creation for testing purpose
368c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("New domain creation for testing purpose : %s" % (self.domain_name))
369c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createDomain]")
370c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("createDomain",self.domain_name, "")
371c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
372c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [createDomain] - Error while creating domain %s" % (self.domain_name)
373c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createDomain] correctly executed")
374c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s created" % (self.domain_name))
375c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
376c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New configurations creation for testing purpose
377c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("New configuration %s creation for domain %s for testing purpose" % (self.conf_1,self.domain_name))
378c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration]")
379c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,self.conf_1)
380c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
381c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (self.conf_1)
382c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration] correctly executed")
383c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Configuration %s created for domain %s" % (self.conf_1,self.domain_name))
384c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("New configuration %s creation for domain %s for testing purpose" % (self.conf_2,self.domain_name))
385c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration]")
386c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,self.conf_2)
387c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
388c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (self.conf_2)
389c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [createConfiguration] correctly executed")
390c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Configuration %s created for domain %s" % (self.conf_2,self.domain_name))
391c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
392c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # Applying rules to configurations
393c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Applying rules to configurations %s and %s from domain %s" % (self.conf_1,self.conf_2,self.domain_name))
394c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule]")
395c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("setRule",self.domain_name,self.conf_1,self.rule_1)
396c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [setRule] - Error while setting rule for configurations %s" % (self.conf_1)
397c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", "FAIL : command [setRule] - Error while setting rule for configuration %s" % (self.conf_1)
398c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule] correctly executed")
399c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("rule correctly created for configuration %s" % (self.conf_1))
400c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("setRule",self.domain_name,self.conf_2,self.rule_2)
401c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [setRule] - Error while setting rule for configurations %s" % (self.conf_2)
402c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", "FAIL : command [setRule] - Error while setting rule for configuration %s" % (self.conf_2)
403c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [setRule] correctly executed")
404c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("rule correctly created for configuration %s" % (self.conf_2))
405c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
406c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # Checking rules recovered
407c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Recovering rules for configurations %s and %s from domain %s" % (self.conf_1,self.conf_2,self.domain_name))
408c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [getRule]")
409c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("getRule",self.domain_name,self.conf_1)
410c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [getRule] - Error while setting rule to configurations %s" % (self.conf_1)
411c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == str(self.rule_1), "FAIL : command [getRule] - Error while recovering rule from configuration %s, incorrect value" % (self.conf_1)
412c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [getRule] correctly executed")
413c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("rule correctly recovered from configuration %s" % (self.conf_1))
414c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("getRule",self.domain_name,self.conf_2)
415c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [getRule] - Error while setting rule to configurations %s" % (self.conf_2)
416c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == str(self.rule_2), "FAIL : command [getRule] - Error while recovering rule from configuration %s, incorrect value" % (self.conf_2)
417c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [getRule] correctly executed")
418c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("rule correctly recovered from configuration %s" % (self.conf_2))
419c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
420c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # Clearing rules
421c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Clear rules for configurations %s and %s from domain %s" % (self.conf_1,self.conf_2,self.domain_name))
422c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [clearRule]")
423c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("clearRule",self.domain_name,self.conf_1)
424c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [clearRule] - Error on clearRule for configuration %s" % (self.conf_1)
425c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", "FAIL : command [clearRule] - Error on clearRule for configuration %s" % (self.conf_1)
426c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("getRule",self.domain_name,self.conf_1)
427c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "<none>", "ERROR : command [clearRule] - ClearRule not working for configuration %s" % (self.conf_1)
428c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("clearRule",self.domain_name,self.conf_2)
429c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [clearRule] - Error on clearRule for configuration %s" % (self.conf_2)
430c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", "FAIL : command [clearRule] - Error on clearRule for configuration %s" % (self.conf_2)
431c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("getRule",self.domain_name,self.conf_2)
432c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "<none>", "ERROR : command [clearRule] - ClearRule not working for configuration %s" % (self.conf_2)
433c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [clearRule] correctly executed")
434c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("ClearRule effective for configurations %s and %s" % (self.conf_1,self.conf_2))
435c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
436c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        # New domain deletion
437c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s deletion" % (self.domain_name))
438c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [deleteDomain]")
439c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("deleteDomain",self.domain_name, "")
440c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", out
441c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, "ERROR : command [deleteDomain] - Error while delting domain %s" % (self.domain_name)
442c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("command [deleteDomain] correctly executed")
443c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("Domain %s deleted" % (self.domain_name))
444