Skip to content
Snippets Groups Projects
MiniSeedFactory_test.py 3.95 KiB
"""Tests for MiniSeedFactory.py"""

from obspy.core import Stream, Trace, UTCDateTime
from geomagio.edge import MiniSeedFactory
from nose.tools import assert_equals


def test__get_edge_network():
    """edge_test.MiniSeedFactory_test.test__get_edge_network()
    """
    # _get_edge_network should always return NT for use by USGS geomag
    assert_equals(
            MiniSeedFactory()._get_edge_network(' ', ' ', ' ', ' '),
            'NT')


def test__get_edge_station():
    """edge_test.MiniSeedFactory_test.test__get_edge_station()
    """
    # _get_edge_station will return the observatory code passed in.
    assert_equals(
            MiniSeedFactory()._get_edge_station('BOU', ' ', ' ', ' '),
            'BOU')


def test__get_edge_channel():
    """edge_test.MiniSeedFactory_test.test__get_edge_channel()
    """
    # Call private function _get_edge_channel, make certain
    # it gets back the appropriate 2 character code.
    assert_equals(MiniSeedFactory()._get_edge_channel('', 'D', '', 'minute'),
            'UFD')
    assert_equals(MiniSeedFactory()._get_edge_channel('', 'U', '', 'minute'),
            'UFU')
    assert_equals(MiniSeedFactory()._get_edge_channel('', 'F', '', 'minute'),
            'UFF')
    assert_equals(MiniSeedFactory()._get_edge_channel('', 'H', '', 'minute'),
            'UFH')
    assert_equals(MiniSeedFactory()._get_edge_channel('', 'BEU', '', 'minute'),
            'BEU')
    assert_equals(
            MiniSeedFactory()._get_edge_channel('', 'DIST', '', 'minute'),
            'UX4')
    assert_equals(MiniSeedFactory()._get_edge_channel('', 'DST', '', 'minute'),
            'UX3')
    assert_equals(MiniSeedFactory()._get_edge_channel('', 'E-E', '', 'minute'),
            'UQE')
    assert_equals(MiniSeedFactory()._get_edge_channel('', 'E-N', '', 'minute'),
            'UQN')


def test__get_edge_location():
    """edge_test.MiniSeedFactory_test.test__get_edge_location()
    """
    # Call _get_edge_location, make certain it returns the correct edge
    # location code.
    assert_equals(MiniSeedFactory()._get_edge_location(
            '', '', 'variation', ''), 'R0')
    assert_equals(MiniSeedFactory()._get_edge_location(
            '', '', 'quasi-definitive', ''), 'Q0')
    assert_equals(MiniSeedFactory()._get_edge_location(
            '', '', 'definitive', ''), 'D0')


def test__get_interval_code():
    """edge_test.MiniSeedFactory_test.test__get_interval_code()
    """
    assert_equals(MiniSeedFactory()._get_interval_code('day'), 'P')
    assert_equals(MiniSeedFactory()._get_interval_code('hour'), 'R')
    assert_equals(MiniSeedFactory()._get_interval_code('minute'), 'U')
    assert_equals(MiniSeedFactory()._get_interval_code('second'), 'L')
    assert_equals(MiniSeedFactory()._get_interval_code('tenhertz'), 'B')


def test__set_metadata():
    """edge_test.MiniSeedFactory_test.test__set_metadata()
    """
    # Call _set_metadata with 2 traces,  and make certain the stats get
    # set for both traces.
    trace1 = Trace()
    trace2 = Trace()
    stream = Stream(traces=[trace1, trace2])
    MiniSeedFactory()._set_metadata(stream, 'BOU', 'H', 'variation', 'minute')
    assert_equals(stream[0].stats['channel'], 'H')
    assert_equals(stream[1].stats['channel'], 'H')


# def test_get_timeseries():
def dont_get_timeseries():
    """edge_test.MiniSeedFactory_test.test_get_timeseries()"""
    # Call get_timeseries, and test stats for comfirmation that it came back.
    # TODO, need to pass in host and port from a config file, or manually
    #   change for a single test.
    edge_factory = MiniSeedFactory(host='TODO', port='TODO')
    timeseries = edge_factory.get_timeseries(
        UTCDateTime(2015, 3, 1, 0, 0, 0), UTCDateTime(2015, 3, 1, 1, 0, 0),
        'BOU', ('H'), 'variation', 'minute')
    assert_equals(timeseries.select(channel='H')[0].stats.station,
        'BOU', 'Expect timeseries to have stats')
    assert_equals(timeseries.select(channel='H')[0].stats.channel,
        'H', 'Expect timeseries stats channel to be equal to H')