Skip to content

Commit

Permalink
update tests, update DateTime data type to be compatible with sqlite,…
Browse files Browse the repository at this point in the history
… some BigInteger values in models.py were the incorrect type
  • Loading branch information
sreeder committed Nov 13, 2017
1 parent 11b0c36 commit 8a8ffe7
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 69 deletions.
58 changes: 31 additions & 27 deletions odm2api/ODM2/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

from odm2api.base import modelBase

from sqlalchemy import BigInteger, Boolean, Column, Date, DateTime, Float, ForeignKey, Integer, String, case
from sqlalchemy import BigInteger, Boolean, Column, Date, DateTime, Float, ForeignKey, Integer, String, case, types, Table, event
from sqlalchemy.dialects import mysql, postgresql, sqlite
from sqlalchemy.orm import relationship
from datetime import datetime, timedelta

Base = modelBase.Base

Expand All @@ -13,6 +14,9 @@
BigIntegerType = BigIntegerType.with_variant(postgresql.BIGINT(), 'postgresql')
BigIntegerType = BigIntegerType.with_variant(mysql.BIGINT(), 'mysql')

DateTimeType = DateTime()
DateTimeType = DateTimeType.with_variant(sqlite.INTEGER(), 'sqlite')


def is_hex(s):
try:
Expand Down Expand Up @@ -404,9 +408,9 @@ class Results(Base):
ProcessingLevelID = Column('processinglevelid', ForeignKey(ProcessingLevels.ProcessingLevelID),
nullable=False)
ResultDateTime = Column('resultdatetime', DateTime)
ResultDateTimeUTCOffset = Column('resultdatetimeutcoffset', BigInteger)
ResultDateTimeUTCOffset = Column('resultdatetimeutcoffset', BigIntegerType)
ValidDateTime = Column('validdatetime', DateTime)
ValidDateTimeUTCOffset = Column('validdatetimeutcoffset', BigInteger)
ValidDateTimeUTCOffset = Column('validdatetimeutcoffset', BigIntegerType)
StatusCV = Column('statuscv', ForeignKey(CVStatus.Name), index=True)
SampledMediumCV = Column('sampledmediumcv', ForeignKey(CVMediumType.Name), nullable=False, index=True)
ValueCount = Column('valuecount', Integer, nullable=False)
Expand Down Expand Up @@ -503,7 +507,7 @@ class InstrumentOutputVariables(Base):
class DataLoggerFileColumns(Base):

DataLoggerFileColumnID = Column('dataloggerfilecolumnid', Integer, primary_key=True, nullable=False)
ResultID = Column('resultid', BigInteger, ForeignKey(Results.ResultID))
ResultID = Column('resultid', BigIntegerType, ForeignKey(Results.ResultID))
DataLoggerFileID = Column('dataloggerfileid', Integer,
ForeignKey(DataLoggerFiles.DataLoggerFileID), nullable=False)
InstrumentOutputVariableID = Column('instrumentoutputvariableid', Integer,
Expand Down Expand Up @@ -861,7 +865,7 @@ class ActionAnnotations(Base):
class EquipmentAnnotations(Base):

BridgeID = Column('bridgeid', Integer, primary_key=True, nullable=False)
EquipmentID = Column('valueid', BigInteger, ForeignKey(Equipment.EquipmentID), nullable=False)
EquipmentID = Column('valueid', BigIntegerType, ForeignKey(Equipment.EquipmentID), nullable=False)
AnnotationID = Column('annotationid', ForeignKey(Annotations.AnnotationID), nullable=False)

AnnotationObj = relationship(Annotations)
Expand Down Expand Up @@ -1640,7 +1644,7 @@ class CategoricalResultValues(Base):
ValueID = Column('valueid', BigIntegerType, primary_key=True)
ResultID = Column('resultid', ForeignKey(CategoricalResults.ResultID), nullable=False)
DataValue = Column('datavalue', String(255), nullable=False)
ValueDateTime = Column('valuedatetime', DateTime, nullable=False)
ValueDateTime = Column('valuedatetime', DateTimeType, nullable=False)
ValueDateTimeUTCOffset = Column('valuedatetimeutcoffset', Integer, nullable=False)

ResultObj = relationship(CategoricalResults)
Expand All @@ -1651,7 +1655,7 @@ class MeasurementResultValues(Base):
ValueID = Column('valueid', BigIntegerType, primary_key=True)
ResultID = Column('resultid', ForeignKey(MeasurementResults.ResultID), nullable=False)
DataValue = Column('datavalue', Float(53), nullable=False)
ValueDateTime = Column('valuedatetime', DateTime, nullable=False)
ValueDateTime = Column('valuedatetime', DateTimeType, nullable=False)
ValueDateTimeUTCOffset = Column('valuedatetimeutcoffset', Integer, nullable=False)

ResultObj = relationship(MeasurementResults)
Expand All @@ -1661,8 +1665,8 @@ class PointCoverageResultValues(Base):

ValueID = Column('valueid', BigIntegerType, primary_key=True)
ResultID = Column('resultid', ForeignKey(PointCoverageResults.ResultID), nullable=False)
DataValue = Column('datavalue', BigInteger, nullable=False)
ValueDateTime = Column('valuedatetime', DateTime, nullable=False)
DataValue = Column('datavalue', BigIntegerType, nullable=False)
ValueDateTime = Column('valuedatetime', DateTimeType, nullable=False)
ValueDateTimeUTCOffset = Column('valuedatetimeutcoffset', Integer, nullable=False)
XLocation = Column('xlocation', Float(53), nullable=False)
XLocationUnitsID = Column('xlocationunitsid', ForeignKey(Units.UnitsID), nullable=False)
Expand All @@ -1687,7 +1691,7 @@ class ProfileResultValues(Base):
ValueID = Column('valueid', BigIntegerType, primary_key=True)
ResultID = Column('resultid', ForeignKey(ProfileResults.ResultID), nullable=False)
DataValue = Column('datavalue', Float(53), nullable=False)
ValueDateTime = Column('valuedatetime', DateTime, nullable=False)
ValueDateTime = Column('valuedatetime', DateTimeType, nullable=False)
ValueDateTimeUTCOffset = Column('valuedatetimeutcoffset', Integer, nullable=False)
ZLocation = Column('zlocation', Float(53), nullable=False)
ZAggregationInterval = Column('zaggregationinterval', Float(53), nullable=False)
Expand All @@ -1714,12 +1718,12 @@ class SectionResultValues(Base):
ValueID = Column('valueid', BigIntegerType, primary_key=True)
ResultID = Column('resultid', ForeignKey(SectionResults.ResultID), nullable=False)
DataValue = Column('datavalue', Float(53), nullable=False)
ValueDateTime = Column('valuedatetime', BigInteger, nullable=False)
ValueDateTimeUTCOffset = Column('valuedatetimeutcoffset', BigInteger, nullable=False)
ValueDateTime = Column('valuedatetime', DateTimeType, nullable=False)
ValueDateTimeUTCOffset = Column('valuedatetimeutcoffset', Integer, nullable=False)
XLocation = Column('xlocation', Float(53), nullable=False)
XAggregationInterval = Column('xaggregationinterval', Float(53), nullable=False)
XLocationUnitsID = Column('xlocationunitsid', ForeignKey(Units.UnitsID), nullable=False)
ZLocation = Column('zlocation', BigInteger, nullable=False)
ZLocation = Column('zlocation', BigIntegerType, nullable=False)
ZAggregationInterval = Column('zaggregationinterval', Float(53), nullable=False)
ZLocationUnitsID = Column('zlocationunitsid', ForeignKey(Units.UnitsID), nullable=False)
CensorCodeCV = Column('censorcodecv', ForeignKey(CVCensorCode.Name), nullable=False, index=True)
Expand Down Expand Up @@ -1750,7 +1754,7 @@ class SpectraResultValues(Base):
ValueID = Column('valueid', BigIntegerType, primary_key=True)
ResultID = Column('resultid', ForeignKey(SpectraResults.ResultID), nullable=False)
DataValue = Column('datavalue', Float(53), nullable=False)
ValueDateTime = Column('valuedatetime', DateTime, nullable=False)
ValueDateTime = Column('valuedatetime', DateTimeType, nullable=False)
ValueDateTimeUTCOffset = Column('valuedatetimeutcoffset', Integer, nullable=False)
ExcitationWavelength = Column('excitationwavelength', Float(53), nullable=False)
EmissionWavelength = Column('emmistionwavelength', Float(53), nullable=False)
Expand Down Expand Up @@ -1779,7 +1783,7 @@ class TimeSeriesResultValues(Base):
ValueID = Column('valueid', BigIntegerType, primary_key=True)
ResultID = Column('resultid', ForeignKey(TimeSeriesResults.ResultID), nullable=False)
DataValue = Column('datavalue', Float(53), nullable=False)
ValueDateTime = Column('valuedatetime', DateTime, nullable=False)
ValueDateTime = Column('valuedatetime', DateTimeType, nullable=False)
ValueDateTimeUTCOffset = Column('valuedatetimeutcoffset', Integer, nullable=False)
CensorCodeCV = Column('censorcodecv', ForeignKey(CVCensorCode.Name), nullable=False, index=True)
QualityCodeCV = Column('qualitycodecv', ForeignKey(CVQualityCode.Name), nullable=False, index=True)
Expand All @@ -1805,7 +1809,7 @@ class TrajectoryResultValues(Base):
ValueID = Column('valueid', BigIntegerType, primary_key=True)
ResultID = Column('resultid', ForeignKey(TrajectoryResults.ResultID), nullable=False)
DataValue = Column('datavalue', Float(53), nullable=False)
ValueDateTime = Column('valuedatetime', DateTime, nullable=False)
ValueDateTime = Column('valuedatetime', DateTimeType, nullable=False)
ValueDateTimeUTCOffset = Column('valuedatetimeutcoffset', Integer, nullable=False)
XLocation = Column('xlocation', Float(53), nullable=False)
XLocationUnitsID = Column('xlocationunitsid', ForeignKey(Units.UnitsID), nullable=False)
Expand Down Expand Up @@ -1850,8 +1854,8 @@ class TransectResultValues(Base):
ValueID = Column('valueid', BigIntegerType, primary_key=True)
ResultID = Column('resultid', ForeignKey(TransectResults.ResultID), nullable=False)
DataValue = Column('datavalue', Float(53), nullable=False)
ValueDateTime = Column('valuedatetime', DateTime, nullable=False)
ValueDateTimeUTCOffset = Column('valuedatetimeutcoffset', DateTime, nullable=False)
ValueDateTime = Column('valuedatetime', DateTimeType, nullable=False)
ValueDateTimeUTCOffset = Column('valuedatetimeutcoffset', Integer, nullable=False)
XLocation = Column('xlocation', Float(53), nullable=False)
XLocationUnitsID = Column('xlocationunitsid', ForeignKey(Units.UnitsID), nullable=False)
YLocation = Column('ylocation', Float(53), nullable=False)
Expand Down Expand Up @@ -1896,7 +1900,7 @@ class TransectResultValues(Base):
class CategoricalResultValueAnnotations(Base):

BridgeID = Column('bridgeid', Integer, primary_key=True, nullable=False)
ValueID = Column('valueid', BigInteger, ForeignKey(CategoricalResultValues.ValueID), nullable=False)
ValueID = Column('valueid', BigIntegerType, ForeignKey(CategoricalResultValues.ValueID), nullable=False)
AnnotationID = Column('annotationid', ForeignKey(Annotations.AnnotationID), nullable=False)

AnnotationObj = relationship(Annotations)
Expand All @@ -1906,7 +1910,7 @@ class CategoricalResultValueAnnotations(Base):
class MeasurementResultValueAnnotations(Base):

BridgeID = Column('bridgeid', Integer, primary_key=True, nullable=False)
ValueID = Column('valueid', BigInteger, ForeignKey(MeasurementResultValues.ValueID), nullable=False)
ValueID = Column('valueid', BigIntegerType, ForeignKey(MeasurementResultValues.ValueID), nullable=False)
AnnotationID = Column('annotationid', ForeignKey(Annotations.AnnotationID), nullable=False)

AnnotationObj = relationship(Annotations)
Expand All @@ -1916,7 +1920,7 @@ class MeasurementResultValueAnnotations(Base):
class PointCoverageResultValueAnnotations(Base):

BridgeID = Column('bridgeid', Integer, primary_key=True, nullable=False)
ValueID = Column('valueid', BigInteger, ForeignKey(PointCoverageResultValues.ValueID), nullable=False)
ValueID = Column('valueid', BigIntegerType, ForeignKey(PointCoverageResultValues.ValueID), nullable=False)
AnnotationID = Column('annotationid', ForeignKey(Annotations.AnnotationID), nullable=False)

AnnotationObj = relationship(Annotations)
Expand All @@ -1926,7 +1930,7 @@ class PointCoverageResultValueAnnotations(Base):
class ProfileResultValueAnnotations(Base):

BridgeID = Column('bridgeid', Integer, primary_key=True, nullable=False)
ValueID = Column('valueid', BigInteger, ForeignKey(ProfileResultValues.ValueID), nullable=False)
ValueID = Column('valueid', BigIntegerType, ForeignKey(ProfileResultValues.ValueID), nullable=False)
AnnotationID = Column('annotationid', ForeignKey(Annotations.AnnotationID), nullable=False)

AnnotationObj = relationship(Annotations)
Expand All @@ -1936,7 +1940,7 @@ class ProfileResultValueAnnotations(Base):
class SectionResultValueAnnotations(Base):

BridgeID = Column('bridgeid', Integer, primary_key=True, nullable=False)
ValueID = Column('valueid', BigInteger, ForeignKey(SectionResultValues.ValueID), nullable=False)
ValueID = Column('valueid', BigIntegerType, ForeignKey(SectionResultValues.ValueID), nullable=False)
AnnotationID = Column('annotationid', ForeignKey(Annotations.AnnotationID), nullable=False)

AnnotationObj = relationship(Annotations)
Expand All @@ -1946,7 +1950,7 @@ class SectionResultValueAnnotations(Base):
class SpectraResultValueAnnotations(Base):

BridgeID = Column('bridgeid', Integer, primary_key=True, nullable=False)
ValueID = Column('valueid', BigInteger, ForeignKey(SpectraResultValues.ValueID), nullable=False)
ValueID = Column('valueid', BigIntegerType, ForeignKey(SpectraResultValues.ValueID), nullable=False)
AnnotationID = Column('annotationid', ForeignKey(Annotations.AnnotationID), nullable=False)

AnnotationObj = relationship(Annotations)
Expand All @@ -1956,7 +1960,7 @@ class SpectraResultValueAnnotations(Base):
class TimeSeriesResultValueAnnotations(Base):

BridgeID = Column('bridgeid', Integer, primary_key=True, nullable=False)
ValueID = Column('valueid', BigInteger, ForeignKey(TimeSeriesResultValues.ValueID), nullable=False)
ValueID = Column('valueid', BigIntegerType, ForeignKey(TimeSeriesResultValues.ValueID), nullable=False)
AnnotationID = Column('annotationid', ForeignKey(Annotations.AnnotationID), nullable=False)

AnnotationObj = relationship(Annotations)
Expand All @@ -1966,7 +1970,7 @@ class TimeSeriesResultValueAnnotations(Base):
class TrajectoryResultValueAnnotations(Base):

BridgeID = Column('bridgeid', Integer, primary_key=True, nullable=False)
ValueID = Column('valueid', BigInteger, ForeignKey(TrajectoryResultValues.ValueID), nullable=False)
ValueID = Column('valueid', BigIntegerType, ForeignKey(TrajectoryResultValues.ValueID), nullable=False)
AnnotationID = Column('annotationid', ForeignKey(Annotations.AnnotationID), nullable=False)

AnnotationObj = relationship(Annotations)
Expand All @@ -1976,7 +1980,7 @@ class TrajectoryResultValueAnnotations(Base):
class TransectResultValueAnnotations(Base):

BridgeID = Column('bridgeid', Integer, primary_key=True, nullable=False)
ValueID = Column('valueid', BigInteger, ForeignKey(TransectResultValues.ValueID), nullable=False)
ValueID = Column('valueid', BigIntegerType, ForeignKey(TransectResultValues.ValueID), nullable=False)
AnnotationID = Column('annotationid', ForeignKey(Annotations.AnnotationID), nullable=False)

AnnotationObj = relationship(Annotations)
Expand Down
17 changes: 16 additions & 1 deletion odm2api/ODM2/services/readService.py
Original file line number Diff line number Diff line change
Expand Up @@ -774,6 +774,21 @@ def getDataSetsResults(self, ids= None, codes=None, uuids=None, dstype=None):
print('Error running Query {}'.format(e))
return None

def getDataSetsValues(self, ids=None, codes=None, uuids=None, dstype=None):

dsr = self.getDataSetsResults(ids, codes, uuids, dstype)

resids = []
for ds in dsr:
resids.append(ds.ResultID)

try:
return self.getResultValues(resultids = resids)
except Exception as e:
print('Error running Query {}'.format(e))
return None


def getSamplingFeatureDatasets(self, ids=None, codes=None, uuids=None, dstype=None):
"""
Retrieve a list of Datasets associated with the given sampling feature data.
Expand Down Expand Up @@ -1133,7 +1148,7 @@ def getResultValues(self, resultids, starttime=None, endtime=None):
"""
type = self._session.query(Results).filter_by(ResultID=resultids[0]).first().ResultTypeCV
ResultType = TimeSeriesResults
ResultType = TimeSeriesResultValues
if 'categorical' in type.lower():
ResultType = CategoricalResultValues
elif 'measurement' in type.lower():
Expand Down
Loading

0 comments on commit 8a8ffe7

Please sign in to comment.