#!/usr/bin/env python

from dm.common.utility.loggingManager import LoggingManager
from dm.common.exceptions.invalidArgument import InvalidArgument
from dm.common.exceptions.objectAlreadyExists import ObjectAlreadyExists
from dm.common.exceptions.objectNotFound import ObjectNotFound
from dm.common.exceptions.dbError import DbError
from dmMongoCollection import DmMongoCollection

class DatasetCollection(DmMongoCollection):
    """Class responsible for updating dataset collection in mongo db."""

    UNIQUE_KEYS_LIST = [ '_id', 'datasetName', 'experimentName' ]

    def __init__(self, dbClient):
        DmMongoCollection.__init__(self, 'datasets', dbClient)

#######################################################################
# Testing
if __name__ == '__main__':
    from dmMongoClient import DmMongoClient
    mongo = DmMongoClient('dm')
    datasetCollection = DatasetCollection(mongo)
    datasetInfo = {'name' : 'ds-001', 
        'owner' : 'sv',
        'experimentName' : 'exp-001',
        'voltage' : { 'gt' : 400},
        'current' : { 'lt' : 100},
    }
    #print datasetCollection.add(datasetInfo)
    print datasetCollection.updateByName(datasetInfo)
    print datasetCollection.findByName('ds-001')
    print datasetCollection.findByQueryDict({'dataset' : 'ds-001'}, {'owner' : 1})