annotate src/test/test_memory.py @ 1050:de415d7984f7

memory (params), test: fixes bug relative to parameter filtering
author souliane <souliane@mailoo.org>
date Tue, 03 Jun 2014 15:10:51 +0200
parents b3f383ab39da
children 854880a31717
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
1 #!/usr/bin/python
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
3
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
4 # SAT: a jabber client
811
1fe00f0c9a91 dates update
Goffi <goffi@goffi.org>
parents: 795
diff changeset
5 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Jérôme Poisson (goffi@goffi.org)
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
6
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
7 # This program is free software: you can redistribute it and/or modify
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
8 # it under the terms of the GNU Affero General Public License as published by
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
9 # the Free Software Foundation, either version 3 of the License, or
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
10 # (at your option) any later version.
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
11
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful,
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
15 # GNU Affero General Public License for more details.
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
16
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
19
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
20 from sat.core.i18n import _
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
21 from sat.test import helpers
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
22 from twisted.trial import unittest
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
23 import traceback
997
b3f383ab39da test: configuration/use of new logging system
Goffi <goffi@goffi.org>
parents: 915
diff changeset
24 from sat.core.log import getLogger
b3f383ab39da test: configuration/use of new logging system
Goffi <goffi@goffi.org>
parents: 915
diff changeset
25 from logging import INFO
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
26 from constants import Const
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
27 from xml.dom import minidom
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
28
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
29
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
30 class MemoryTest(unittest.TestCase):
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
31
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
32 def setUp(self):
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
33 self.host = helpers.FakeSAT()
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
34
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
35 def _getParamXML(self, param="1", security_level=None):
1050
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
36 """Generate XML for testing parameters
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
37
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
38 @param param (str): parameter "1", "2" or "both"
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
39 @param security_level: security level of the parameters
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
40 @return (str)
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
41 """
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
42 def getParam(name):
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
43 return """
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
44 <param name="%(param_name)s" label="%(param_label)s" value="true" type="bool" %(security)s/>
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
45 """ % {'param_name': name,
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
46 'param_label': _(name),
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
47 'security': '' if security_level is None else ('security="%d"' % security_level)
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
48 }
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
49 if param == "1":
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
50 params = getParam(Const.ENABLE_UNIBOX_PARAM)
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
51 elif param == "2":
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
52 params = getParam(Const.PARAM_IN_QUOTES)
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
53 else:
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
54 params = getParam(Const.ENABLE_UNIBOX_PARAM) + getParam(Const.PARAM_IN_QUOTES)
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
55 return """
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
56 <params>
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
57 <individual>
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
58 <category name="%(category_name)s" label="%(category_label)s">
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
59 %(params)s
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
60 </category>
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
61 </individual>
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
62 </params>
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
63 """ % {
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
64 'category_name': Const.COMPOSITION_KEY,
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
65 'category_label': _(Const.COMPOSITION_KEY),
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
66 'params': params
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
67 }
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
68
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
69 def _paramExists(self, param="1", src=None):
1050
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
70 """
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
71
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
72 @param param (str): parameter "1" or "2"
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
73 @param src (DOM element): the top-level element to look in
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
74 @return: True is the param exists
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
75 """
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
76 if param == "1":
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
77 name = Const.ENABLE_UNIBOX_PARAM
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
78 else:
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
79 name = Const.PARAM_IN_QUOTES
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
80 category = Const.COMPOSITION_KEY
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
81 if src is None:
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
82 src = self.host.memory.params.dom.documentElement
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
83 for type_node in src.childNodes:
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
84 # when src comes self.host.memory.params.dom, we have here
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
85 # some "individual" or "general" elements, when it comes
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
86 # from Memory.getParams we have here a "params" elements
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
87 if type_node.nodeName not in ("individual", "general", "params"):
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
88 continue
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
89 for cat_node in type_node.childNodes:
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
90 if cat_node.nodeName != "category" or cat_node.getAttribute("name") != category:
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
91 continue
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
92 for param in cat_node.childNodes:
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
93 if param.nodeName == "param" and param.getAttribute("name") == name:
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
94 return True
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
95 return False
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
96
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
97 def assertParam_generic(self, param="1", src=None, exists=True, deferred=False):
1050
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
98 """
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
99 @param param (str): parameter "1" or "2"
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
100 @param src (DOM element): the top-level element to look in
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
101 @param exists (boolean): True to assert the param exists, False to assert it doesn't
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
102 @param deferred (boolean): True if this method is called from a Deferred callback
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
103 """
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
104 msg = "Expected parameter not found!\n" if exists else "Unexpected parameter found!\n"
1050
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
105 if deferred:
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
106 # in this stack we can see the line where the error came from,
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
107 # if limit=5, 6 is not enough you can increase the value
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
108 msg += "\n".join(traceback.format_stack(limit=5 if exists else 6))
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
109 assertion = self._paramExists(param, src)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
110 getattr(self, "assert%s" % exists)(assertion, msg)
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
111
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
112 def assertParamExists(self, param="1", src=None):
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
113 self.assertParam_generic(param, src, True)
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
114
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
115 def assertParamNotExists(self, param="1", src=None):
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
116 self.assertParam_generic(param, src, False)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
117
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
118 def assertParamExists_async(self, src, param="1"):
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
119 """@param src: a deferred result from Memory.getParams"""
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
120 self.assertParam_generic(param, minidom.parseString(src.encode("utf-8")), True, True)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
121
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
122 def assertParamNotExists_async(self, src, param="1"):
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
123 """@param src: a deferred result from Memory.getParams"""
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
124 self.assertParam_generic(param, minidom.parseString(src.encode("utf-8")), False, True)
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
125
786
c3acc1298a2f test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents: 782
diff changeset
126 def _getParams(self, security_limit, app='', profile_key='@NONE@'):
1050
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
127 """Get the parameters accessible with the given security limit and application name.
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
128
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
129 @param security_limit (int): the security limit
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
130 @param app (str): empty string or "libervia"
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
131 @param profile_key
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
132 """
786
c3acc1298a2f test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents: 782
diff changeset
133 if profile_key == '@NONE@':
c3acc1298a2f test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents: 782
diff changeset
134 profile_key = '@DEFAULT@'
c3acc1298a2f test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents: 782
diff changeset
135 return self.host.memory.getParams(security_limit, app, profile_key)
c3acc1298a2f test: FakeMemory inherits from Memory + more helpers basic support + cleaning
souliane <souliane@mailoo.org>
parents: 782
diff changeset
136
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
137 def test_updateParams(self):
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
138 self.host.memory.init()
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
139 # check if the update works
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
140 self.host.memory.updateParams(self._getParamXML())
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
141 self.assertParamExists()
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
142 previous = self.host.memory.params.dom.cloneNode(True)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
143 # now check if it is really updated and not duplicated
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
144 self.host.memory.updateParams(self._getParamXML())
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
145 self.assertEqual(previous.toxml().encode("utf-8"), self.host.memory.params.dom.toxml().encode("utf-8"))
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
146
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
147 self.host.memory.init()
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
148 # check successive updates (without intersection)
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
149 self.host.memory.updateParams(self._getParamXML('1'))
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
150 self.assertParamExists("1")
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
151 self.assertParamNotExists("2")
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
152 self.host.memory.updateParams(self._getParamXML('2'))
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
153 self.assertParamExists("1")
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
154 self.assertParamExists("2")
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
155
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
156 previous = self.host.memory.params.dom.cloneNode(True) # save for later
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
157
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
158 self.host.memory.init()
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
159 # check successive updates (with intersection)
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
160 self.host.memory.updateParams(self._getParamXML('1'))
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
161 self.assertParamExists("1")
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
162 self.assertParamNotExists("2")
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
163 self.host.memory.updateParams(self._getParamXML('both'))
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
164 self.assertParamExists("1")
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
165 self.assertParamExists("2")
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
166
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
167 # successive updates with or without intersection should have the same result
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
168 self.assertEqual(previous.toxml().encode("utf-8"), self.host.memory.params.dom.toxml().encode("utf-8"))
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
169
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
170 def test_getParams(self):
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
171 # tests with no security level on the parameter (most secure)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
172 params = self._getParamXML()
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
173 self.host.memory.init()
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
174 self.host.memory.updateParams(params)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
175 self._getParams(Const.NO_SECURITY_LIMIT).addCallback(self.assertParamExists_async)
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
176 self._getParams(0).addCallback(self.assertParamNotExists_async)
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
177 self._getParams(1).addCallback(self.assertParamNotExists_async)
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
178 # tests with security level 0 on the parameter (not secure)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
179 params = self._getParamXML(security_level=0)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
180 self.host.memory.init()
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
181 self.host.memory.updateParams(params)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
182 self._getParams(Const.NO_SECURITY_LIMIT).addCallback(self.assertParamExists_async)
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
183 self._getParams(0).addCallback(self.assertParamExists_async)
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
184 self._getParams(1).addCallback(self.assertParamExists_async)
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
185 # tests with security level 1 on the parameter (more secure)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
186 params = self._getParamXML(security_level=1)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
187 self.host.memory.init()
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
188 self.host.memory.updateParams(params)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
189 self._getParams(Const.NO_SECURITY_LIMIT).addCallback(self.assertParamExists_async)
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
190 self._getParams(0).addCallback(self.assertParamNotExists_async)
1050
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
191 return self._getParams(1).addCallback(self.assertParamExists_async)
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
192
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
193 def test_paramsRegisterApp(self):
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
194
1050
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
195 def register(xml, security_limit, app):
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
196 """
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
197 @param xml: XML definition of the parameters to be added
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
198 @param security_limit: -1 means no security, 0 is the maximum security then the higher the less secure
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
199 @param app: name of the frontend registering the parameters
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
200 """
997
b3f383ab39da test: configuration/use of new logging system
Goffi <goffi@goffi.org>
parents: 915
diff changeset
201 logger = getLogger()
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
202 level = logger.getEffectiveLevel()
997
b3f383ab39da test: configuration/use of new logging system
Goffi <goffi@goffi.org>
parents: 915
diff changeset
203 logger.setLevel(INFO)
1050
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
204 self.host.memory.paramsRegisterApp(xml, security_limit, app)
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
205 logger.setLevel(level)
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
206
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
207 # tests with no security level on the parameter (most secure)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
208 params = self._getParamXML()
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
209 self.host.memory.init()
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
210 register(params, Const.NO_SECURITY_LIMIT, Const.APP_NAME)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
211 self.assertParamExists()
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
212 self.host.memory.init()
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
213 register(params, 0, Const.APP_NAME)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
214 self.assertParamNotExists()
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
215 self.host.memory.init()
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
216 register(params, 1, Const.APP_NAME)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
217 self.assertParamNotExists()
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
218
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
219 # tests with security level 0 on the parameter (not secure)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
220 params = self._getParamXML(security_level=0)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
221 self.host.memory.init()
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
222 register(params, Const.NO_SECURITY_LIMIT, Const.APP_NAME)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
223 self.assertParamExists()
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
224 self.host.memory.init()
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
225 register(params, 0, Const.APP_NAME)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
226 self.assertParamExists()
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
227 self.host.memory.init()
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
228 register(params, 1, Const.APP_NAME)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
229 self.assertParamExists()
833
9bac2fc74968 memory: bug fix to not register twice frontends parameters + added some tests for param update
souliane <souliane@mailoo.org>
parents: 811
diff changeset
230
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
231 # tests with security level 1 on the parameter (more secure)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
232 params = self._getParamXML(security_level=1)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
233 self.host.memory.init()
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
234 register(params, Const.NO_SECURITY_LIMIT, Const.APP_NAME)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
235 self.assertParamExists()
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
236 self.host.memory.init()
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
237 register(params, 0, Const.APP_NAME)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
238 self.assertParamNotExists()
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
239 self.host.memory.init()
793
cb2db0d85029 test: silent info/warning that were polluting the output
souliane <souliane@mailoo.org>
parents: 789
diff changeset
240 register(params, 1, Const.APP_NAME)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
241 self.assertParamExists()
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
242
1050
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
243 # tests with security level 1 and several parameters being registered
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
244 params = self._getParamXML("both", security_level=1)
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
245 self.host.memory.init()
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
246 register(params, Const.NO_SECURITY_LIMIT, Const.APP_NAME)
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
247 self.assertParamExists()
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
248 self.assertParamExists("2")
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
249 self.host.memory.init()
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
250 register(params, 0, Const.APP_NAME)
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
251 self.assertParamNotExists()
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
252 self.assertParamNotExists("2")
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
253 self.host.memory.init()
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
254 register(params, 1, Const.APP_NAME)
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
255 self.assertParamExists()
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
256 self.assertParamExists("2")
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
257
782
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
258 def test_paramsRegisterApp_getParams(self):
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
259 # test retrieving the parameter for a specific frontend
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
260 self.host.memory.init()
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
261 params = self._getParamXML(security_level=1)
0e5807193721 test: added some tests for Memory
souliane <souliane@mailoo.org>
parents:
diff changeset
262 self.host.memory.paramsRegisterApp(params, 1, Const.APP_NAME)
789
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
263 self._getParams(1, '').addCallback(self.assertParamExists_async)
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
264 self._getParams(1, Const.APP_NAME).addCallback(self.assertParamExists_async)
0cb423500fbb test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
souliane <souliane@mailoo.org>
parents: 786
diff changeset
265 self._getParams(1, 'another_dummy_frontend').addCallback(self.assertParamNotExists_async)
1050
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
266
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
267 # the same with several parameters registered at the same time
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
268 self.host.memory.init()
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
269 params = self._getParamXML('both', security_level=0)
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
270 self.host.memory.paramsRegisterApp(params, 5, Const.APP_NAME)
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
271 self._getParams(5, '').addCallback(self.assertParamExists_async)
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
272 self._getParams(5, '').addCallback(self.assertParamExists_async, "2")
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
273 self._getParams(5, Const.APP_NAME).addCallback(self.assertParamExists_async)
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
274 self._getParams(5, Const.APP_NAME).addCallback(self.assertParamExists_async, "2")
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
275 self._getParams(5, 'another_dummy_frontend').addCallback(self.assertParamNotExists_async)
de415d7984f7 memory (params), test: fixes bug relative to parameter filtering
souliane <souliane@mailoo.org>
parents: 997
diff changeset
276 return self._getParams(5, 'another_dummy_frontend').addCallback(self.assertParamNotExists_async, "2")