Changeset 8494
- Timestamp:
- 08/08/12 09:32:57 (8 years ago)
- Location:
- mauRepo/MolesManager/trunk/cedaMoles
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
mauRepo/MolesManager/trunk/cedaMoles/MolesManager/moles3epb.py
r8493 r8494 212 212 return unifyGeometriesAsBBox(bboxes, self) 213 213 214 def getUnifyObservationCollectionPhenomenonTime(self, collection):215 """216 Returns the time period of the collections.member'a phenomenonTime(s)217 @param collection: an CEDA_ObservationColleciton instance218 @return: a tuple (startDate, endDate)219 """220 ptStart = []221 ptEnd = []222 for member in collection.member:223 for pt in member.phenomenonTime:224 ptString = fromPhenomenonTimeToString(pt)225 if ptString[0] is not None:226 ptStart.append(datetime.strptime(ptString[0], '%Y-%m-%d'))227 if ptString[1] is not None:228 ptEnd.append(datetime.strptime(ptString[1], '%Y-%m-%d'))229 ptStart.sort()230 ptEnd.sort()231 start = None232 end = None233 #takes the earlier date234 if len(ptStart) > 0:235 start = ptStart[0]236 #takes the latest date237 if len(ptEnd) > 0:238 end = ptEnd[len(ptEnd) - 1]239 return start, end240 241 242 243 214 #return unifyGeometriesAsBBox(bboxes, self) 244 215 … … 327 298 @return: a tuple containing the associated CEDA_ObservationCollection 328 299 """ 329 mo_obs = self._session.query(MO_Observation).join(CEDA_Project).filter(CEDA_Project.id == project.id).subquery() 330 obsers = self._session.query(CEDA_Observation).join(mo_obs, CEDA_Observation.id == mo_obs.c.id).one() 331 #print "obsers: " + str(intSession.query(CEDA_Observation).join(mo_obs, CEDA_Observation.id == mo_obs.c.id).count()) 332 300 mo_obs = self._session.query(MO_Observation).join(CEDA_Project).\ 301 filter(CEDA_Project.id == project.id).subquery() 302 obsers = self._session.query(CEDA_Observation).\ 303 join(mo_obs, CEDA_Observation.id == mo_obs.c.id).one() 304 305 ''' 333 306 cos = self._session.query(CEDA_ObservationCollection).all() 334 co = self._session.query(MO_ObservationCollection).join(MO_ObservationCollection.member).filter(MO_ObservationCollection.member.contains(obsers)) 335 336 observations = self._session.query(MO_ObservationCollection).join(CEDA_Observation). \ 307 co = self._session.query(MO_ObservationCollection).\ 308 join(MO_ObservationCollection.member).\ 309 filter(MO_ObservationCollection.member.contains(obsers)) 310 ''' 311 observations = self._session.query(MO_ObservationCollection).\ 312 join(CEDA_Observation).\ 337 313 filter(obsers.any(CEDA_Observation.id==obsers.c.id)) 338 314 print "observation:" + str(observations.count()) … … 415 391 return "%s-%s-%s" % (dt.year, dt.month, dt.day) 416 392 417 def getUnifyObservationCollectionPhenomenonTime(collection):393 def unify_observation_collection_phenomenon_time(collection): 418 394 """ 419 395 Returns the time period of the collections.member'a phenomenonTime(s) -
mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/commons.py
r8489 r8494 40 40 import html5lib 41 41 from html5lib import treebuilders 42 from ea_model.moles3_4.result.mo_onlineresource import MO_OnlineResource43 from ea_model.iso_19115_2006_metadata_corrigendum.reference_system_information.md_identifier import MD_Identifier44 from ea_model.iso_19115_2006_metadata_corrigendum.identification_information.md_keywords import MD_Keywords45 from ea_model.iso_19103_2005_schema_language.basic_types.primitive.date_and_time.datetime import DateTime46 from ea_model.iso_19103_2005_schema_language.basic_types.primitive.date_and_time.date import Date47 from ea_model.iso_19108_2006_temporal_schema.temporal_reference_system.tm_position import TM_Position48 from ea_model.iso_19108_2006_temporal_schema.temporal_objects.tm_instant import TM_Instant49 from ea_model.iso_19108_2006_temporal_schema.temporal_objects.tm_period import TM_Period50 from ea_model.iso_19115_2006_metadata_corrigendum.citation_and_responsible_party_information.ci_address import CI_Address51 from ea_model.iso_19115_2006_metadata_corrigendum.citation_and_responsible_party_information.ci_onlineresource import CI_OnlineResource52 from ea_model.iso_19115_2006_metadata_corrigendum.citation_and_responsible_party_information.ci_telephone import CI_Telephone53 from ea_model.iso_19115_2006_metadata_corrigendum.citation_and_responsible_party_information.ci_contact import CI_Contact54 from ea_model.moles3_4.utilities.mo_individual import MO_Individual55 from ea_model.moles3_4.utilities.mo_organisation import MO_Organisation56 from ea_model.iso_19115_2006_metadata_corrigendum.citation_and_responsible_party_information.ci_date import CI_Date57 from ea_model.iso_19115_2006_metadata_corrigendum.citation_and_responsible_party_information.ci_citation import CI_Citation58 from ea_model.iso_19115_2006_metadata_corrigendum.constraint_information.md_constraints import MD_Constraints59 from ea_model.iso_19115_2006_metadata_corrigendum.constraint_information.md_legalconstraints import MD_LegalConstraints60 from ea_model.iso_19115_2006_metadata_corrigendum.citation_and_responsible_party_information.ci_responsibleparty import CI_ResponsibleParty61 from ea_model.iso_19115_2006_metadata_corrigendum.metadata_entity_set_information.md_metadata import MD_Metadata62 from ea_model.iso_19115_2006_metadata_corrigendum.data_quality_information.dq_conformanceresult import DQ_ConformanceResult63 from ea_model.iso_19115_2006_metadata_corrigendum.extent_information.ex_geographicboundingbox import EX_GeographicBoundingBox64 from ea_model.iso_19115_2006_metadata_corrigendum.data_quality_information.dq_element import DQ_Element65 42 from ea_model.ceda_metadatamodel.ceda_project.ceda_project import CEDA_Project 66 from ea_model.ceda_metadatamodel.ceda_utilities.ceda_review import CEDA_Review 67 from ea_model.ceda_metadatamodel.ceda_acquisition.ceda_acquisition import CEDA_Acquisition 68 from ea_model.ceda_metadatamodel.ceda_observationprocess.ceda_compositeprocess import CEDA_CompositeProcess 43 from ea_model.ceda_metadatamodel.ceda_utilities.ceda_review import CEDA_Review 69 44 from ea_model.ceda_metadatamodel.ceda_acquisition.ceda_instrument import CEDA_Instrument 70 45 from ea_model.ceda_metadatamodel.ceda_computation.ceda_processing import CEDA_Processing 71 46 from ea_model.ceda_metadatamodel.ceda_result.ceda_result import CEDA_Result 72 import datetime 47 from ea_model.moles3_4.utilities.mo_individual import MO_Individual 48 from ea_model.moles3_4.utilities.mo_organisation import MO_Organisation 49 from ea_model.iso_19108_2006_temporal_schema.temporal_objects.tm_instant import TM_Instant 50 from ea_model.iso_19108_2006_temporal_schema.temporal_objects.tm_period import TM_Period 51 from ea_model.moles3_4.result.mo_onlineresource import MO_OnlineResource 52 from ea_model.ceda_metadatamodel.ceda_acquisition.ceda_acquisition import CEDA_Acquisition 53 54 from ea_model.iso_19103_2005_schema_language.basic_types.\ 55 primitive.date_and_time.datetime import DateTime 56 from ea_model.iso_19103_2005_schema_language.basic_types.\ 57 primitive.date_and_time.date import Date 58 from ea_model.iso_19108_2006_temporal_schema.temporal_reference_system.\ 59 tm_position import TM_Position 60 61 from ea_model.iso_19115_2006_metadata_corrigendum.\ 62 reference_system_information.md_identifier import MD_Identifier 63 from ea_model.iso_19115_2006_metadata_corrigendum.\ 64 identification_information.md_keywords import MD_Keywords 65 from ea_model.iso_19115_2006_metadata_corrigendum.\ 66 citation_and_responsible_party_information.ci_address import CI_Address 67 from ea_model.iso_19115_2006_metadata_corrigendum.\ 68 citation_and_responsible_party_information.ci_onlineresource import CI_OnlineResource 69 from ea_model.iso_19115_2006_metadata_corrigendum.\ 70 citation_and_responsible_party_information.ci_telephone import CI_Telephone 71 from ea_model.iso_19115_2006_metadata_corrigendum.\ 72 citation_and_responsible_party_information.ci_contact import CI_Contact 73 from ea_model.iso_19115_2006_metadata_corrigendum.\ 74 citation_and_responsible_party_information.ci_date import CI_Date 75 from ea_model.iso_19115_2006_metadata_corrigendum.\ 76 citation_and_responsible_party_information.ci_citation import CI_Citation 77 from ea_model.iso_19115_2006_metadata_corrigendum.\ 78 constraint_information.md_constraints import MD_Constraints 79 from ea_model.iso_19115_2006_metadata_corrigendum.\ 80 constraint_information.md_legalconstraints import MD_LegalConstraints 81 from ea_model.iso_19115_2006_metadata_corrigendum.\ 82 citation_and_responsible_party_information.ci_responsibleparty \ 83 import CI_ResponsibleParty 84 from ea_model.iso_19115_2006_metadata_corrigendum.\ 85 metadata_entity_set_information.md_metadata import MD_Metadata 86 from ea_model.iso_19115_2006_metadata_corrigendum.\ 87 data_quality_information.dq_conformanceresult import DQ_ConformanceResult 88 from ea_model.iso_19115_2006_metadata_corrigendum.\ 89 extent_information.ex_geographicboundingbox import EX_GeographicBoundingBox 90 from ea_model.iso_19115_2006_metadata_corrigendum.\ 91 data_quality_information.dq_element import DQ_Element 92 93 from ea_model.ceda_metadatamodel.ceda_observationprocess.\ 94 ceda_compositeprocess import CEDA_CompositeProcess 73 95 74 96 base = '/exist/rest/atoms' … … 103 125 iport = '8080' 104 126 105 linkMarkers = ['Deployment', 'DOWNLOAD', 'DOCUMENTATION', 'ACCESS', 'LOGO', 'ACTIVITY', 'DPT', 'OBS'] 127 linkMarkers = ['Deployment', 'DOWNLOAD', 'DOCUMENTATION', 'ACCESS', 'LOGO', 'ACTIVITY', \ 128 'DPT', 'OBS'] 106 129 107 130 #MD_Identifier codes 108 131 MD_CODE_MOLES2_CITATION = 'ceda_moles2_citation' 109 132 110 htmlParser = html5lib.HTMLParser(tree=treebuilders.getTreeBuilder("etree"), namespaceHTMLElements=False) 133 htmlParser = html5lib.HTMLParser(tree=treebuilders.getTreeBuilder("etree"), \ 134 namespaceHTMLElements=False) 111 135 112 136 def calculateHash(text): … … 153 177 if migrationObject is None: 154 178 raise Exception("migrationObject is None") 155 mo_typeDict = {'DeploymentsMigration': DT_DEPLOYMENTS, 'DataEntityMigration': DT_DATA_ENTITIES, 'DeploymentDataMigration': DT_DEPLOYMENT_DATA} 156 return getAtomDocumentAsElementtree(migrationObject.doc_status, mo_typeDict[type(migrationObject).__name__], migrationObject.doc_owner, migrationObject.doc_name) 179 mo_typeDict = {'DeploymentsMigration': DT_DEPLOYMENTS, \ 180 'DataEntityMigration': DT_DATA_ENTITIES, \ 181 'DeploymentDataMigration': DT_DEPLOYMENT_DATA} 182 return getAtomDocumentAsElementtree(migrationObject.doc_status, \ 183 mo_typeDict[type(migrationObject).__name__], \ 184 migrationObject.doc_owner, migrationObject.doc_name) 157 185 158 186 def getAtomDocumentHashByMO(migrationObject): 159 187 if migrationObject is None: 160 188 raise Exception("migrationObject is None") 161 mo_typeDict = {'DeploymentsMigration': DT_DEPLOYMENTS, 'DataEntityMigration': DT_DATA_ENTITIES, 'DeploymentDataMigration': DT_DEPLOYMENT_DATA} 162 text = _getAtomDocumentAsText(migrationObject.doc_status, mo_typeDict[type(migrationObject).__name__], migrationObject.doc_owner, migrationObject.doc_name) 189 mo_typeDict = {'DeploymentsMigration': DT_DEPLOYMENTS, \ 190 'DataEntityMigration': DT_DATA_ENTITIES, \ 191 'DeploymentDataMigration': DT_DEPLOYMENT_DATA} 192 text = _getAtomDocumentAsText(migrationObject.doc_status, \ 193 mo_typeDict[type(migrationObject).__name__],\ 194 migrationObject.doc_owner, migrationObject.doc_name) 163 195 return calculateHash(text) 164 196 … … 188 220 ''' 189 221 Checks if a migration object has changed. 190 @param migrationObject: an instance of DataEntityMigration or DeploymentsMigration or DeploymentDataMigration 191 @return True if the hash of the actual document is the same of the migrationObject, otherwise False 222 @param migrationObject: an instance of DataEntityMigration or 223 DeploymentsMigration or DeploymentDataMigration 224 @return True if the hash of the actual document is the 225 same of the migrationObject, otherwise False 192 226 ''' 193 227 if not hasMOBeenProcessed(migrationObject): … … 198 232 if migrationObject is None: 199 233 raise Exception("migrationObject is None") 200 return getAtomDocumentAsElementtree(migrationObject.doc_status, docType, migrationObject.doc_owner, migrationObject.doc_name) 234 return getAtomDocumentAsElementtree(migrationObject.doc_status, \ 235 docType, migrationObject.doc_owner, \ 236 migrationObject.doc_name) 201 237 202 238 def _getAtomDocumentAsText(docStatus, docType, docOwner, docName): … … 216 252 @param timestring: a time string formatted as '%Y-%m-%dT%H:%M:%SZ' 217 253 ''' 218 return datetime.datetime.fromtimestamp(time.mktime(time.strptime(timestring, datetime_format))) 254 return datetime.datetime.fromtimestamp(\ 255 time.mktime(time.strptime(timestring, datetime_format))) 219 256 220 257 def isoDateStringToTimeDate(datestring): … … 253 290 254 291 def findMolesCreationDate(resourceXML): 255 creationDate = resourceXML.find('%sentity/%smolesISO/%screated' % (molesNS, molesNS, molesNS)) 292 creationDate = resourceXML.find('%sentity/%smolesISO/%screated' \ 293 % (molesNS, molesNS, molesNS)) 256 294 return _returnNotNoneText(creationDate) 257 295 258 296 def findMolesPublishedDate(resourceXML): 259 creationDate = resourceXML.find('%sentity/%smolesISO/%spublished' % (molesNS, molesNS, molesNS)) 297 creationDate = resourceXML.find('%sentity/%smolesISO/%spublished' \ 298 % (molesNS, molesNS, molesNS)) 260 299 return _returnNotNoneText(creationDate) 261 300 262 301 def findMolesLineage(dataEntityMigration): 263 302 resourceXML = getAtomDocumentByMO(dataEntityMigration) 264 lineage = resourceXML.find('%sentity/%smolesISO/%slineage' % (molesNS, molesNS, molesNS)) 303 lineage = resourceXML.find('%sentity/%smolesISO/%slineage' \ 304 % (molesNS, molesNS, molesNS)) 265 305 if lineage is None: 266 306 raise NoDataLineage(dataEntityMigration) … … 269 309 def extractMolesProviderID(migrationObject): 270 310 resourceXML = getAtomDocumentByMO(migrationObject) 271 provider_id = resourceXML.find('%sentity/%smolesISO/%sproviderID' % (molesNS, molesNS, molesNS)) 311 provider_id = resourceXML.find('%sentity/%smolesISO/%sproviderID' \ 312 % (molesNS, molesNS, molesNS)) 272 313 return _returnNotNoneText(provider_id) 273 314 274 315 def extractMolesQuality(migrationObject): 275 316 resourceXML = getAtomDocumentByMO(migrationObject) 276 quality = resourceXML.find('%sentity/%smolesISO/%squality' % (molesNS, molesNS, molesNS)) 317 quality = resourceXML.find('%sentity/%smolesISO/%squality' \ 318 % (molesNS, molesNS, molesNS)) 277 319 return _returnNotNoneText(quality) 278 320 … … 292 334 def extractQuality(dataEntityMigration): 293 335 resourceXML = getAtomDocumentByMO(dataEntityMigration) 294 quality = resourceXML.find('%sentity/%smolesISO/%squality' % (molesNS, molesNS, molesNS)) 336 quality = resourceXML.find('%sentity/%smolesISO/%squality' \ 337 % (molesNS, molesNS, molesNS)) 295 338 return _returnNotNoneText(quality) 296 339 297 340 def extractUpdateFrequency(dataEntityMigration): 298 341 resourceXML = getAtomDocumentByMO(dataEntityMigration) 299 update_frequency = resourceXML.find('%sentity/%smolesISO/%supdateFrequency' % (molesNS, molesNS, molesNS)) 342 update_frequency = resourceXML.find('%sentity/%smolesISO/%supdateFrequency' \ 343 % (molesNS, molesNS, molesNS)) 300 344 return _returnNotNoneText(update_frequency) 301 345 … … 377 421 rel = link.get('rel') 378 422 if rel and rel.endswith('/' + linkMarker): 379 linksDict[linkMarker].append({'href': link.get('href'), 'title': link.get('title')}) 423 linksDict[linkMarker].append({'href': link.get('href'), \ 424 'title': link.get('title')}) 380 425 381 426 def _extractLinks(dataEntXML, markers): … … 420 465 def findDocumentationInMigrationDocument(migrationObject): 421 466 """ 422 Return a list of dictionaries describing a <link rel="...DOCUMENTATION..."> tag type 467 Return a list of dictionaries describing a <link rel="...DOCUMENTATION..."> 468 tag type 423 469 Each dictionary has two keys: 'href' and 'title' 424 470 @param migrationObject: the migration instance to retrieve and parse … … 468 514 Extracts if existing the georss:where/gel:Enveloper/upper-lowerCorner elements. 469 515 @param migrationObject: a migration object to retrieve to parse for data 470 @return: None if no data are found, otherwise a dictionary with keys: 'east', 'north', 'west', 'south' where 516 @return: None if no data are found, otherwise a dictionary with keys: 'east', 517 'north', 'west', 'south' where 471 518 the values are float 472 519 """ 473 520 resourceXML = getAtomDocumentByMO(migrationObject) 474 upperCorner = resourceXML.find('%swhere/%sEnvelope/%supperCorner' % (georssNS, gmlNS, gmlNS)) 475 lowerCorner = resourceXML.find('%swhere/%sEnvelope/%slowerCorner' % (georssNS, gmlNS, gmlNS)) 521 upperCorner = resourceXML.find('%swhere/%sEnvelope/%supperCorner' \ 522 % (georssNS, gmlNS, gmlNS)) 523 lowerCorner = resourceXML.find('%swhere/%sEnvelope/%slowerCorner' \ 524 % (georssNS, gmlNS, gmlNS)) 476 525 ret = None 477 526 if upperCorner != None and lowerCorner != None: 478 527 upperCornerData = upperCorner.text.split() 479 528 lowerCornerData = lowerCorner.text.split() 480 ret = {'east': float(upperCornerData[0]), 'north': float(upperCornerData[1]), 'west': float(lowerCornerData[0]), 'south': float(lowerCornerData[1])} 529 ret = {'east': float(upperCornerData[0]), 'north': float(upperCornerData[1]), \ 530 'west': float(lowerCornerData[0]), 'south': float(lowerCornerData[1])} 481 531 return ret 482 532 … … 512 562 ''' 513 563 Returns a list of Elements representing the inner resource reference items 514 @param resourceRefs: the name of the eXist collection name below the 'deployments' one 564 @param resourceRefs: the name of the eXist collection name below the 565 'deployments' one 515 566 ''' 516 567 XMLDepl = _getXMLDocument(deploymentRefs) … … 520 571 ''' 521 572 Returns a list of Elements representing the inner resource reference items 522 @param resourceRefs: the name of the eXist collection name below the 'deployments' one 573 @param resourceRefs: the name of the eXist collection name below the 574 'deployments' one 523 575 ''' 524 576 XMLDepl = _getXMLDocument(buildExistOwnerPath(docStatus, docType, docOwner)) … … 528 580 ''' 529 581 Returns a list of Elements representing the inner resource reference items 530 @param resourceRefs: the name of the eXist collection name below the 'deployments' one 582 @param resourceRefs: the name of the eXist collection name below the 583 'deployments' one 531 584 ''' 532 585 XMLDepl = _getXMLDocument(buildExistTypePath(docStatus, docType)) … … 538 591 ''' 539 592 Returns a list of Elements representing the inner deployment reference items 540 @param basePublished: the name of the eXist collection name below the 'published' one 593 @param basePublished: the name of the eXist collection name below the 594 'published' one 541 595 ''' 542 596 XMLPubl = _getXMLDocument(publishedRefs) … … 592 646 return idate 593 647 594 def createTM_Position(anyOther = None, date8601 = None, dateTime8601 = None, time8601 = None): 648 def createTM_Position(anyOther = None, \ 649 date8601 = None, \ 650 dateTime8601 = None, \ 651 time8601 = None): 595 652 ''' 596 653 Creates a new TM_Position instance … … 630 687 return tm_period 631 688 632 def createCI_Address(deliveryPoint = None, electronicMailAddress = None, city = None, country = None, postalCode = None): 689 def createCI_Address(deliveryPoint = None, electronicMailAddress = None, \ 690 city = None, country = None, postalCode = None): 633 691 ''' 634 692 Creates a new CI_Address instance … … 823 881 return md_metadata 824 882 825 def createMO_OnlineResource(linkage, instance = None, name = None, function = None, description = None, applicationProfile = None): 883 def createMO_OnlineResource(linkage, instance = None, name = None, function = None, \ 884 description = None, applicationProfile = None): 826 885 """ 827 886 Creates a new CEDA_Result … … 930 989 return ceda_review 931 990 932 def createCEDA_Project(abstract = None, publication_state = None, documentation = None, project_resource=None): 991 def createCEDA_Project(abstract = None, publication_state = None, \ 992 documentation = None, project_resource=None): 933 993 ceda_project = CEDA_Project() 934 994 if abstract: … … 962 1022 pt = createTM_Period(begin_tm_instant, end_tm_instant) 963 1023 else: 964 tm_position = createTM_Position(date8601 = createDate(isoDateStringToTimeDate(doc_phenomenon_time))) 1024 tm_position = createTM_Position(date8601 = \ 1025 createDate(isoDateStringToTimeDate(doc_phenomenon_time))) 965 1026 pt = createTM_Instant(tm_position) 966 1027 return pt … … 971 1032 a TM_Period instance in a string like '2002-07-22/2011-08-06' (start/endDate) 972 1033 @param phenomenonTime: a aTM_Instace or a TM_Period instance 973 @return a pair startDate, endDate. If endDate does not exists return startDate, None 1034 @return a pair startDate, endDate. If endDate does not exists return startDate, 1035 None 974 1036 """ 975 1037 if phenomenonTime is None: … … 996 1058 if gbb is None: 997 1059 return None 998 return '{0} {1},{2} {3}'.format(gbb.eastBoundLongitude, gbb.northBoundLatitude, gbb.westBoundLongitude, gbb.southBoundLatitude) 1060 return '{0} {1},{2} {3}'.format(gbb.eastBoundLongitude, gbb.northBoundLatitude, \ 1061 gbb.westBoundLongitude, gbb.southBoundLatitude) 999 1062 1000 1063 def compareGeographicBoundingBoxes(gb1, gb2): -
mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/dataEntity.py
r8486 r8494 50 50 getCLValue 51 51 from ea_model.ceda_metadatamodel.ceda_observationcollection.ceda_observationcollection import CEDA_ObservationCollection 52 from cedaMoles.MolesManager.moles3epb import getUnifyObservationCollectionPhenomenonTime52 from cedaMoles.MolesManager.moles3epb import unify_observation_collection_phenomenon_time 53 53 CEDA_TITLE = 'ceda_title' 54 54 … … 93 93 94 94 def _assignPhenomenonTime(self, ceda_observationCollection): 95 start, end = getUnifyObservationCollectionPhenomenonTime(ceda_observationCollection)95 start, end = unify_observation_collection_phenomenon_time(ceda_observationCollection) 96 96 dateString = start 97 97 if end is not None: -
mauRepo/MolesManager/trunk/cedaMoles/tests/migration/loadresource.py
r8486 r8494 4 4 @author: mnagni 5 5 ''' 6 from unittest import TestCase 7 from cedaMoles.libs.commons_db import DbManager 6 from cedaMoles.tests.cedamolestest import CedaMolesTest 8 7 from cedaMoles.libs.migration.processor.loadResources import LoadResources 9 8 from cedaMoles.libs.migration.db.classes import DataEntityMigration 10 9 from cedaMoles.libs.migration.processor.commons import calculateHash 11 from cedaMoles.tests.testconfig import MIGRATION_DB_CONNECTION, MIGRATION_DB_SCRIPT12 10 13 class LoadResourceTest(TestCase): 14 ''' 15 classdocs 16 ''' 17 18 def setUp(self): 19 migrationDB = DbManager(MIGRATION_DB_CONNECTION, MIGRATION_DB_SCRIPT) 20 #MigrationEPB.overrrideDBManager(migrationDB) 11 class LoadResourceTest(CedaMolesTest): 21 12 22 13 def testLoadResource(self): 23 14 lr = LoadResources() 24 migrationClass = DataEntityMigration 15 migrationClass = DataEntityMigration() 25 16 doc_id = 123 26 17 docHash = calculateHash('123_docHash') 27 18 docCreation = '2009-12-10T03:16:25Z' 28 lr.createMigrationDoc(migrationClass, doc_id, '123_docName', '123_ddocOwner', '123_docStatus', docHash, docCreation) 29 self.assertTrue(lr.updateMigrationDoc(migrationClass, doc_id, docHash, docCreation)) 30 self.assertTrue(lr.updateMigrationDoc(migrationClass, doc_id, calculateHash('321_docHash'), docCreation)) 31 self.assertTrue(lr.updateMigrationDoc(migrationClass, doc_id, calculateHash('321_docHash'), '2012-12-10T03:16:25Z')) 19 lr.createMigrationDoc(migrationClass, doc_id, '123_docName', \ 20 '123_ddocOwner', '123_docStatus', \ 21 docHash, docCreation) 22 self.assertTrue(lr.updateMigrationDoc(migrationClass, doc_id, \ 23 docHash, docCreation)) 24 self.assertTrue(lr.updateMigrationDoc(migrationClass, doc_id, 25 calculateHash('321_docHash'), \ 26 docCreation)) 27 self.assertTrue(lr.updateMigrationDoc(migrationClass, doc_id, \ 28 calculateHash('321_docHash'), \ 29 '2012-12-10T03:16:25Z')) 32 30 33 31 self.assertFalse(lr.updateMigrationDoc(migrationClass, 321, docHash, docCreation)) -
mauRepo/MolesManager/trunk/cedaMoles/tests/migration/moles3epbtests.py
r8489 r8494 5 5 ''' 6 6 import logging, datetime 7 from cedaMoles.libs.migration.processor.commons import createCI_Date, createDateTime,\ 8 createDate, createTM_Position, createTM_Instant 9 from ea_model.iso_19115_2006_metadata_corrigendum.citation_and_responsible_party_information.ci_datetypecode import CI_DateTypeCode 10 from ea_model.iso_19115_2006_metadata_corrigendum.citation_and_responsible_party_information.ci_date import CI_Date 11 from ea_model.iso_19108_2006_temporal_schema.temporal_objects.tm_instant import TM_Instant 12 from ea_model.iso_19108_2006_temporal_schema.temporal_reference_system.tm_position import TM_Position 13 from test_utils import createObservationCollection,\ 14 createProject 15 from ea_model.ceda_metadatamodel.ceda_observationcollection.ceda_observationcollection import CEDA_ObservationCollection 7 from cedaMoles.libs.migration.processor.commons import createCI_Date, \ 8 createDateTime, createDate, createTM_Position, createTM_Instant 9 from ea_model.iso_19115_2006_metadata_corrigendum.\ 10 citation_and_responsible_party_information.ci_datetypecode \ 11 import CI_DateTypeCode 12 from ea_model.iso_19115_2006_metadata_corrigendum.\ 13 citation_and_responsible_party_information.ci_date import CI_Date 14 from ea_model.iso_19108_2006_temporal_schema.temporal_objects.tm_instant \ 15 import TM_Instant 16 from ea_model.iso_19108_2006_temporal_schema.temporal_reference_system.\ 17 tm_position import TM_Position 18 from test_utils import createObservationCollection, createProject 19 from ea_model.ceda_metadatamodel.ceda_observationcollection.\ 20 ceda_observationcollection import CEDA_ObservationCollection 16 21 from cedaMoles.tests.cedamolestest import CedaMolesTest 17 from ea_model.ceda_metadatamodel.ceda_observation.ceda_observation import CEDA_Observation 22 from ea_model.ceda_metadatamodel.ceda_observation.ceda_observation \ 23 import CEDA_Observation 18 24 from ea_model.ceda_metadatamodel.ceda_project.ceda_project import CEDA_Project 19 25 … … 24 30 25 31 def runTest(self): 26 #self.checkEmptyObservationCollection()27 #self.checkEmptyObservation()28 #self.checkObservation()29 #self.checkObservationCollection()30 #self.checkCI_Date()31 #self.checkTM_Instant()32 #self.checkTM_Position()32 self.checkEmptyObservationCollection() 33 self.checkEmptyObservation() 34 self.checkObservation() 35 self.checkObservationCollection() 36 self.checkCI_Date() 37 self.checkTM_Instant() 38 self.checkTM_Position() 33 39 self.checkCI_Responsibility() 34 40 … … 40 46 41 47 Moles3EPBTest.log.info('Tries to retrieve it') 42 self.assertTrue(hasattr(observationCollection, 'id'), "Cannot create ObservationCollection") 43 res = self.epbRepo.moles3EPB.search(CEDA_ObservationCollection, observationCollection.id) 48 self.assertTrue(hasattr(observationCollection, 'id'), "Cannot create \ 49 ObservationCollection") 50 res = self.epbRepo.moles3EPB.search(CEDA_ObservationCollection, \ 51 observationCollection.id) 44 52 self.assertNotEqual(res, None, "Cannot retrieve the stored instance") 45 53 … … 50 58 observation = CEDA_Observation() 51 59 52 Moles3EPBTest.log.info('Tries to stores an empty new %s' % (observation.__class__.__name__)) 60 Moles3EPBTest.log.info('Tries to stores an empty new %s' \ 61 % (observation.__class__.__name__)) 53 62 self.epbRepo.moles3EPB.persistInstance(observation) 54 63 #self.assertRaises(IntegrityError, session.commit) … … 60 69 61 70 Moles3EPBTest.log.info('Tries to retrieve it') 62 self.assertTrue(hasattr(observation, 'id'), 'Cannot create %s' % (observation.__class__.__name__)) 71 self.assertTrue(hasattr(observation, 'id'), 'Cannot create %s' \ 72 % (observation.__class__.__name__)) 63 73 res = self.epbRepo.moles3EPB.search(CEDA_Observation, observation.id) 64 74 self.assertNotEqual(res, None, "Cannot retrieve the stored instance") … … 74 84 75 85 Moles3EPBTest.log.info('Tries to retrieve it') 76 self.assertTrue(hasattr(observationCollection, 'id'), "Cannot create ObservationCollection") 77 res = self.epbRepo.moles3EPB.search(CEDA_ObservationCollection, observationCollection.id) 86 self.assertTrue(hasattr(observationCollection, 'id'), "Cannot create \ 87 ObservationCollection") 88 res = self.epbRepo.moles3EPB.search(CEDA_ObservationCollection, \ 89 observationCollection.id) 78 90 self.assertNotEqual(res, None, "Cannot retrieve the stored instance") 79 91 … … 84 96 observationCollection.member.append(secondObservation) 85 97 86 self.assertTrue(self.epbRepo.moles3EPB.observationCollectionHasObservation(observationCollection.id, firstObservation.id), "The collection should contains the given observation") 98 self.assertTrue(self.epbRepo.moles3EPB.\ 99 observationCollectionHasObservation(observationCollection.id, \ 100 firstObservation.id), 101 "The collection should contains the given observation") 87 102 88 103 Moles3EPBTest.log.info('Deletes it') … … 92 107 observation = self._createObservation() 93 108 94 Moles3EPBTest.log.info('Tries to stores a new %s' % (observation.__class__.__name__)) 109 Moles3EPBTest.log.info('Tries to stores a new %s' \ 110 % (observation.__class__.__name__)) 95 111 self.epbRepo.moles3EPB.persistInstance(observation) 96 112 97 113 Moles3EPBTest.log.info('Tries to retrieve it') 98 self.assertTrue(hasattr(observation, 'id'), 'Cannot create %s' % (observation.__class__.__name__)) 114 self.assertTrue(hasattr(observation, 'id'), 'Cannot create %s' \ 115 % (observation.__class__.__name__)) 99 116 res = self.epbRepo.moles3EPB.search(CEDA_Observation, observation.id) 100 117 self.assertNotEqual(res, None, "Cannot retrieve the stored instance") … … 159 176 res = self.epbRepo.moles3EPB.search(CEDA_Project, project.id) 160 177 for item in res: 161 self.assertTrue(item.abstract == 'test_abstract', "Cannot retrieve the abstract from stored project") 178 self.assertTrue(item.abstract == 'test_abstract', \ 179 "Cannot retrieve the abstract from stored project") 162 180 163 181 Moles3EPBTest.log.info('Deletes it')
Note: See TracChangeset
for help on using the changeset viewer.