diff src/test/test_memory.py @ 789:0cb423500fbb

test: use the SatTestCase methods instead of builtin "assert" in tests for memory, plugin xep-0033
author souliane <souliane@mailoo.org>
date Tue, 07 Jan 2014 09:27:53 +0100
parents c3acc1298a2f
children cb2db0d85029
line wrap: on
line diff
--- a/src/test/test_memory.py	Fri Jan 10 21:12:06 2014 +0100
+++ b/src/test/test_memory.py	Tue Jan 07 09:27:53 2014 +0100
@@ -73,24 +73,28 @@
                         return True
         return False
 
-    def _assert(self, src, true=True):
-        """@param src: a deferred result from Memory.getParams"""
-        assertion = self._paramExists(src=minidom.parseString(src.encode("utf-8")))
-        if not true:
-            assertion = not assertion
-        try:
-            assert(assertion)
-        except AssertionError as e:
+    def assertParam_generic(self, src=None, exists=True, deferred=False):
+        msg = "Expected parameter not found!\n" if exists else "Unexpected parameter found!\n"
+        if deferred == False:
             # in this stack we can see the line where the error came from,
-            # if limit=5 is not enough you can increase the value
-            print "---------------------- stack start ----------------------"
-            traceback.print_stack(limit=5 if true else 6)
-            print "----------------------- stack end -----------------------"
-            raise e
+            # if limit=5, 6 is not enough you can increase the value
+            msg += "\n".join(traceback.format_stack(limit=5 if exists else 6))
+        assertion = self._paramExists(src=src)
+        getattr(self, "assert%s" % exists)(assertion, msg)
+
+    def assertParamExists(self, src=None):
+        self.assertParam_generic(src, True)
 
-    def _assert_not(self, src):
+    def assertParamNotExists(self, src=None):
+        self.assertParam_generic(src, False)
+
+    def assertParamExists_async(self, src):
         """@param src: a deferred result from Memory.getParams"""
-        self._assert(src, False)
+        self.assertParam_generic(minidom.parseString(src.encode("utf-8")), True, True)
+
+    def assertParamNotExists_async(self, src):
+        """@param src: a deferred result from Memory.getParams"""
+        self.assertParam_generic(minidom.parseString(src.encode("utf-8")), False, True)
 
     def _getParams(self, security_limit, app='', profile_key='@NONE@'):
         if profile_key == '@NONE@':
@@ -101,7 +105,7 @@
         self.host.memory.init()
         # check if the update works
         self.host.memory.updateParams(self._getParamXML())
-        assert(self._paramExists())
+        self.assertParamExists()
         previous = self.host.memory.params.dom.cloneNode(True)
         # now check if it is really updated and not duplicated
         self.host.memory.updateParams(self._getParamXML())
@@ -112,64 +116,64 @@
         params = self._getParamXML()
         self.host.memory.init()
         self.host.memory.updateParams(params)
-        self._getParams(Const.NO_SECURITY_LIMIT).addCallback(self._assert)
-        self._getParams(0).addCallback(self._assert_not)
-        self._getParams(1).addCallback(self._assert_not)
+        self._getParams(Const.NO_SECURITY_LIMIT).addCallback(self.assertParamExists_async)
+        self._getParams(0).addCallback(self.assertParamNotExists_async)
+        self._getParams(1).addCallback(self.assertParamNotExists_async)
         # tests with security level 0 on the parameter (not secure)
         params = self._getParamXML(security_level=0)
         self.host.memory.init()
         self.host.memory.updateParams(params)
-        self._getParams(Const.NO_SECURITY_LIMIT).addCallback(self._assert)
-        self._getParams(0).addCallback(self._assert)
-        self._getParams(1).addCallback(self._assert)
+        self._getParams(Const.NO_SECURITY_LIMIT).addCallback(self.assertParamExists_async)
+        self._getParams(0).addCallback(self.assertParamExists_async)
+        self._getParams(1).addCallback(self.assertParamExists_async)
         # tests with security level 1 on the parameter (more secure)
         params = self._getParamXML(security_level=1)
         self.host.memory.init()
         self.host.memory.updateParams(params)
-        self._getParams(Const.NO_SECURITY_LIMIT).addCallback(self._assert)
-        self._getParams(0).addCallback(self._assert_not)
-        self._getParams(1).addCallback(self._assert)
+        self._getParams(Const.NO_SECURITY_LIMIT).addCallback(self.assertParamExists_async)
+        self._getParams(0).addCallback(self.assertParamNotExists_async)
+        self._getParams(1).addCallback(self.assertParamExists_async)
 
     def test_paramsRegisterApp(self):
         # tests with no security level on the parameter (most secure)
         params = self._getParamXML()
         self.host.memory.init()
         self.host.memory.paramsRegisterApp(params, Const.NO_SECURITY_LIMIT, Const.APP_NAME)
-        assert(self._paramExists())
+        self.assertParamExists()
         self.host.memory.init()
         self.host.memory.paramsRegisterApp(params, 0, Const.APP_NAME)
-        assert(not self._paramExists())
+        self.assertParamNotExists()
         self.host.memory.init()
         self.host.memory.paramsRegisterApp(params, 1, Const.APP_NAME)
-        assert(not self._paramExists())
+        self.assertParamNotExists()
         # tests with security level 0 on the parameter (not secure)
         params = self._getParamXML(security_level=0)
         self.host.memory.init()
         self.host.memory.paramsRegisterApp(params, Const.NO_SECURITY_LIMIT, Const.APP_NAME)
-        assert(self._paramExists())
+        self.assertParamExists()
         self.host.memory.init()
         self.host.memory.paramsRegisterApp(params, 0, Const.APP_NAME)
-        assert(self._paramExists())
+        self.assertParamExists()
         self.host.memory.init()
         self.host.memory.paramsRegisterApp(params, 1, Const.APP_NAME)
-        assert(self._paramExists())
+        self.assertParamExists()
         # tests with security level 1 on the parameter (more secure)
         params = self._getParamXML(security_level=1)
         self.host.memory.init()
         self.host.memory.paramsRegisterApp(params, Const.NO_SECURITY_LIMIT, Const.APP_NAME)
-        assert(self._paramExists())
+        self.assertParamExists()
         self.host.memory.init()
         self.host.memory.paramsRegisterApp(params, 0, Const.APP_NAME)
-        assert(not self._paramExists())
+        self.assertParamNotExists()
         self.host.memory.init()
         self.host.memory.paramsRegisterApp(params, 1, Const.APP_NAME)
-        assert(self._paramExists())
+        self.assertParamExists()
 
     def test_paramsRegisterApp_getParams(self):
         # test retrieving the parameter for a specific frontend
         self.host.memory.init()
         params = self._getParamXML(security_level=1)
         self.host.memory.paramsRegisterApp(params, 1, Const.APP_NAME)
-        self._getParams(1, '').addCallback(self._assert)
-        self._getParams(1, Const.APP_NAME).addCallback(self._assert)
-        self._getParams(1, 'another_dummy_frontend').addCallback(self._assert_not)
+        self._getParams(1, '').addCallback(self.assertParamExists_async)
+        self._getParams(1, Const.APP_NAME).addCallback(self.assertParamExists_async)
+        self._getParams(1, 'another_dummy_frontend').addCallback(self.assertParamNotExists_async)