def test_result_model_hydration(self):
        mdl = 2
        resultvalue = 141
        sampdepth = 0
        analysisdate = datetime.datetime(2014, 02, 24, 0, 0)
        sampledate = datetime.datetime(2014, 02, 24, 0, 0)
        # time parsing gives current date
        sampletime = (datetime.datetime.now().
                      replace(hour=11, minute=40, second=0, microsecond=0))

        csv_data = {'ActivityIdentifier': 'SampleId',
                    'CharacteristicName': 'Param',
                    'PrecisionValue': '',
                    'ResultAnalyticalMethod/MethodIdentifierContext': '',
                    'SampleAquifer': '',
                    'StatisticalBaseCode': '',
                    'ResultWeightBasisText': '',
                    'ActivityStartTime/Time': '11:40:00',
                    'ResultDetectionConditionText': 'DetectCond',
                    'ResultSampleFractionText': 'SampFrac',
                    'ActivityStartTime/TimeZoneCode': 'MST',
                    'ActivityStartDate': '2014-02-24',
                    'ActivityEndTime/Time': '',
                    'ActivityConductingOrganizationText': '',
                    'OrganizationIdentifier': 'OrgId',
                    'ActivityBottomDepthHeightMeasure/MeasureUnitCode': '',
                    'AnalysisStartDate': '2014-02-24',
                    'DetectionQuantitationLimitTypeName': 'LimitType',
                    'MethodDescriptionText': 'MethodDescript',
                    'ResultAnalyticalMethod/MethodIdentifier': 'AnalytMethId',
                    'SampleCollectionMethod/MethodName': 'SampMethName',
                    'ResultTemperatureBasisText': '',
                    'ResultDepthHeightMeasure/MeasureValue': '',
                    'ResultStatusIdentifier': 'ResultStatus',
                    'PreparationStartDate': '',
                    'USGSPCode': 'USGSPCode',
                    'ResultMeasureValue': '141',
                    'ActivityTypeCode': 'SampType',
                    'SampleCollectionMethod/MethodIdentifierContext': '',
                    'MeasureQualifierCode': 'QualCode',
                    'ActivityDepthHeightMeasure/MeasureValue': '0',
                    'ResultParticleSizeBasisText': '',
                    'ResultAnalyticalMethod/MethodName': 'AnalytMeth',
                    'ResultDepthAltitudeReferencePointText': '',
                    'ActivityDepthAltitudeReferencePointText': 'SampDepthRef',
                    'ResultCommentText': 'ResultComment',
                    'SampleTissueAnatomyName': '',
                    'SubjectTaxonomicName': '',
                    'ActivityTopDepthHeightMeasure/MeasureUnitCode': '',
                    'ActivityMediaName': 'Water',
                    'DetectionQuantitationLimitMeasure/MeasureUnitCode': 'mdlunit',
                    'ResultValueTypeName': 'Actual',
                    'OrganizationFormalName': 'OrgName',
                    'ActivityCommentText': 'SampComment',
                    'MonitoringLocationIdentifier': 'StationId',
                    'ProjectIdentifier': 'ProjectId',
                    'ResultLaboratoryCommentText': 'LabComments',
                    'ActivityEndTime/TimeZoneCode': '',
                    'HydrologicCondition': '',
                    'ResultMeasure/MeasureUnitCode': 'unit',
                    'ActivityTopDepthHeightMeasure/MeasureValue': '',
                    'ResultDepthHeightMeasure/MeasureUnitCode': '',
                    'DetectionQuantitationLimitMeasure/MeasureValue': '2',
                    'ActivityEndDate': '',
                    'LaboratoryName': 'LabName',
                    'HydrologicEvent': '',
                    'ResultTimeBasisText': '',
                    'ActivityBottomDepthHeightMeasure/MeasureValue': '',
                    'SampleCollectionMethod/MethodIdentifier': 'SampMeth',
                    'ActivityMediaSubdivisionName': 'SampMedia',
                    'SampleCollectionEquipmentName': 'SampEquip',
                    'ActivityDepthHeightMeasure/MeasureUnitCode': 'SampDepthU'}
        expected = [analysisdate,
                    'AnalytMeth',
                    'AnalytMethId',
                    None,
                    None,
                    None,
                    None,
                    'DetectCond',
                    None,  # : idNum
                    'LabComments',
                    'LabName',
                    None,  # : lay y
                    'LimitType',
                    None,  # lon x,
                    mdl,
                    'mdlunit',
                    'MethodDescript',
                    'OrgId',
                    'OrgName',
                    'Param',
                    None,  # paramgroup
                    'ProjectId',
                    'QualCode',
                    'ResultComment',
                    'ResultStatus',
                    resultvalue,
                    'SampComment',
                    sampdepth,
                    'SampDepthRef',
                    'SampDepthU',
                    'SampEquip',
                    'SampFrac',
                    sampledate,
                    sampletime,
                    'SampleId',
                    'SampMedia',
                    'SampMeth',
                    'SampMethName',
                    'SampType',
                    'StationId',
                    'unit',
                    'USGSPCode'
                    ]

        actual = resultmodel.WqpResult(
            csv_data, Normalizer()).row
        self.assertListEqual(actual, expected)
    def test_station_model_hydration(self):
        lon_x = -114.323546838
        lat_y = 42.5661737512
        elev = 0
        depth = 1
        holedepth = 2
        elevac = 3
        horacc = 4
        statecode = 16
        countycode = 83
        constdate = datetime.datetime(2014, 06, 19, 0, 0)

        csv_data = {'DrainageAreaMeasure/MeasureUnitCode': 'ha',
                    'MonitoringLocationTypeName': 'StationType',
                    'HorizontalCoordinateReferenceSystemDatumName': 'HorRef',
                    'DrainageAreaMeasure/MeasureValue': '2774',
                    'StateCode': str(statecode),
                    'MonitoringLocationIdentifier': 'StationId',
                    'MonitoringLocationName': 'StationName',
                    'VerticalMeasure/MeasureValue': str(elev),
                    'FormationTypeText': 'FmType',
                    'VerticalAccuracyMeasure/MeasureUnitCode': 'ElevAccUnit',
                    'VerticalCoordinateReferenceSystemDatumName': 'ElevRef',
                    'AquiferTypeName': 'AquiferType',
                    'HorizontalAccuracyMeasure/MeasureUnitCode': 'HorAccUnit',
                    'ContributingDrainageAreaMeasure/MeasureUnitCode': '',
                    'WellHoleDepthMeasure/MeasureValue': str(holedepth),
                    'WellDepthMeasure/MeasureValue': str(depth),
                    'LongitudeMeasure': '-114.323546838',
                    'AquiferName': 'Aquifer',
                    'HorizontalAccuracyMeasure/MeasureValue': str(horacc),
                    'HUCEightDigitCode': 'HUC8',
                    'LatitudeMeasure': '42.5661737512',
                    'ContributingDrainageAreaMeasure/MeasureValue': '',
                    'OrganizationFormalName': 'OrgName',
                    'WellDepthMeasure/MeasureUnitCode': 'DepthUnit',
                    'OrganizationIdentifier': 'OrgId',
                    'HorizontalCollectionMethodName': 'HorCollMeth',
                    'VerticalAccuracyMeasure/MeasureValue': str(elevac),
                    'VerticalCollectionMethodName': 'ElevMeth',
                    'MonitoringLocationDescriptionText': 'StationComment',
                    'CountryCode': 'US',
                    'VerticalMeasure/MeasureUnitCode': 'ElevUnit',
                    'CountyCode': str(countycode),
                    'ConstructionDateText': '2014-06-19',
                    'WellHoleDepthMeasure/MeasureUnitCode': 'HoleDUnit',
                    'SourceMapScaleNumeric': ''}

        expected = [
            'OrgId',
            'OrgName',
            'StationId',
            'StationName',
            'StationType',
            'StationComment',
            'HUC8',
            lon_x,
            lat_y,
            horacc,
            'HorAccUnit',
            'HorCollMeth',
            'HorRef',
            elev,
            'ElevUnit',
            elevac,
            'ElevAccUnit',
            'ElevMeth',
            'ElevRef',
            statecode,
            countycode,
            'Aquifer',
            'FmType',
            'AquiferType',
            constdate,
            depth,
            'DepthUnit',
            holedepth,
            'HoleDUnit',
            None,
            None,
            None,
            (227191.93568276422, 4717996.363612308)
        ]
        actual = stationmodel.WqpStation(
            csv_data, Normalizer()).row

        self.assertListEqual(actual, expected)