Database Scheme for storage
---------------------------

List of tables
--------------

 * version
 * Environment
 * TestRun
 * Client
 * Test
 * subtests
 * TestClassInfo
 * dicts

Description of tables
---------------------

* version
 * version : version of the database scheme
 * modificationtime : modification time of the database to the current
	scheme in seconds since Epoch.

* Environment
 * testrunid : 'id' of TestRun this entry is related to
 * data : dictionnary of information


* TestRun
 * id : Primary unique key
 * clientid : 'id' of the Client on which this TestRun was executed.
 * starttime : Start time of the testrun in seconds since Epoch.
 * stoptime : Stop time of the testrun in seconds since Epoch.

* Client
 * id : Primary unique key
 * software : Name of the client software used
 * name : Name of the client machine (ex: collabora-amd64-gentoo, ...)
 * user : Identification of the user (most likely email)
 * ....  FIXME : Figure out what more information is needed.


* Test
 * id : Primary unique key
 * testrunid : 'id' of TestRun in which this test was executed.
 * type : string of the type of the test (related to TestClassInfo).
 * arguments : dictionnary of the arguments used
 * results : dictionnary of the checklist
 * resultpercentage : float value of success of the above results
 * extrainfo : dictionnary of extra information

* Subtests
 * testid : 'id' of the subtest
 * scenarioid : 'id' of the scenario containing that subtest

* TestClassInfo
 * type : Primary unique key
 * parent : parent type, can be ''
 * description : description of the test
 * arguments : arguments
 * checklist :
 * extrainfo :

* dicts
 * id : Primary unique key for all dictionnaries in the db

TODO :
------

Need to figure out how to handle monitors and their data.