[Kimchi-devel] [PATCHv2 2/2] Hack test_model to support vm model singleton

Royce Lv lvroyce at linux.vnet.ibm.com
Thu Mar 6 08:32:43 UTC 2014


On 2014年03月06日 02:21, Aline Manera wrote:
>
> This change was causing a lot of duplicate work to run the tests.
>
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> ...Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
> .Loading AptUpdate features.
I saw this in my test. After each testcase singleton dict is cleared and 
software update is reload:

class SoftwareUpdate(object):
__metaclass__ = Singleton

In fact every time a test finished, its variables and tmp info need to 
be cleared. If singleton is not cleared, all testcases use same 
SoftwareUpdate instance.
So I suppose reload is a right behaviour, what do you think?

The belowing is not related I assume.

> *** Running feature tests ***
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> *** Feature tests completed ***
> *** Running feature tests ***
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> *** Feature tests completed ***
> *** Running feature tests ***
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> *** Feature tests completed ***
> *** Running feature tests ***
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:30] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> *** Feature tests completed ***
> *** Running feature tests ***
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> *** Feature tests completed ***
> *** Running feature tests ***
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> *** Feature tests completed ***
> *** Running feature tests ***
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:31] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> *** Feature tests completed ***
> *** Running feature tests ***
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> *** Feature tests completed ***
> *** Running feature tests ***
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "GET /images/icon-fedora.png 
> HTTP/1.1" 206 4449 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "HEAD /images/icon-fedora.png 
> HTTP/1.1" 200 4449 "" ""
> *** Feature tests completed ***
> [05/Mar/2014:15:17:32] ENGINE Bus STARTED
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "POST /plugins/sample/rectangles 
> HTTP/1.1" 400 734 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "POST /plugins/sample/rectangles 
> HTTP/1.1" 400 753 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "POST /plugins/sample/rectangles 
> HTTP/1.1" 400 755 "" ""
> .127.0.0.1 - - [05/Mar/2014:15:17:32] "POST /plugins/sample/rectangles 
> HTTP/1.1" 201 48 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "GET 
> /plugins/sample/rectangles/small HTTP/1.1" 200 48 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "POST /plugins/sample/rectangles 
> HTTP/1.1" 201 47 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "GET 
> /plugins/sample/rectangles/big HTTP/1.1" 200 47 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "GET /plugins/sample/rectangles 
> HTTP/1.1" 200 121 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "PUT 
> /plugins/sample/rectangles/big HTTP/1.1" 200 47 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "GET 
> /plugins/sample/rectangles/big HTTP/1.1" 200 47 "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "DELETE 
> /plugins/sample/rectangles/big HTTP/1.1" 204 - "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "DELETE 
> /plugins/sample/rectangles/small HTTP/1.1" 204 - "" ""
> 127.0.0.1 - - [05/Mar/2014:15:17:32] "GET /plugins/sample/rectangles 
> HTTP/1.1" 200 2 "" ""
> .[05/Mar/2014:15:17:32] ENGINE Bus STOPPING
> [05/Mar/2014:15:17:32] ENGINE HTTP Server 
> cherrypy._cpwsgi_server.CPWSGIServer(('127.0.0.1', 58348)) shut down
> [05/Mar/2014:15:17:32] ENGINE HTTP Server 
> cherrypy._cpwsgi_server.CPWSGIServer(('127.0.0.1', 52200)) shut down
> [05/Mar/2014:15:17:32] ENGINE Stopped thread '_TimeoutMonitor'.
> [05/Mar/2014:15:17:32] ENGINE Stopped thread 'Session cleanup'.
> [05/Mar/2014:15:17:32] ENGINE Bus STOPPED
> [05/Mar/2014:15:17:32] ENGINE Bus EXITING
> [05/Mar/2014:15:17:32] ENGINE Bus EXITED
>
>
> Isn't there other solution?
>
>
> On 03/05/2014 05:14 AM, lvroyce at linux.vnet.ibm.com wrote:
>> From: Royce Lv <lvroyce at linux.vnet.ibm.com>
>>
>> Because test_model have singleton import for its whole life cycle,
>> the dict of singleton class not cleared even though instance deleted.
>> Hack it so that model instance can be generated again.
>>
>> Signed-off-by: Royce Lv <lvroyce at linux.vnet.ibm.com>
>> ---
>> tests/test_model.py | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/tests/test_model.py b/tests/test_model.py
>> index 9df4994..cb24b0e 100644
>> --- a/tests/test_model.py
>> +++ b/tests/test_model.py
>> @@ -33,6 +33,7 @@ import iso_gen
>> import kimchi.objectstore
>> import utils
>> from kimchi import netinfo
>> +from kimchi.basemodel import Singleton
>> from kimchi.exception import InvalidOperation, InvalidParameter
>> from kimchi.exception import NotFoundError, OperationFailed
>> from kimchi.iscsi import TargetClient
>> @@ -46,6 +47,7 @@ class ModelTests(unittest.TestCase):
>> self.tmp_store = '/tmp/kimchi-store-test'
>>
>> def tearDown(self):
>> + Singleton._instances = {}
>> os.unlink(self.tmp_store)
>>
>> def test_vm_info(self):
>




More information about the Kimchi-devel mailing list