From 67a3ea16c2a8cf596abe05f30d612b18d7bfeb9e Mon Sep 17 00:00:00 2001
From: Eddie McWhirter <emcwhirter@usgs.gov>
Date: Thu, 25 Jun 2015 14:15:08 -0600
Subject: [PATCH] Add a PCDCPFactory test.

---
 geomagio/pcdcp/PCDCPFactory.py      |  5 +++++
 geomagio/pcdcp/PCDCPFactory_test.py | 32 +++++++++++++++--------------
 geomagio/pcdcp/PCDCPWriter.py       |  1 +
 3 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/geomagio/pcdcp/PCDCPFactory.py b/geomagio/pcdcp/PCDCPFactory.py
index a58fb037d..c5fb2c0f4 100644
--- a/geomagio/pcdcp/PCDCPFactory.py
+++ b/geomagio/pcdcp/PCDCPFactory.py
@@ -104,14 +104,18 @@ class PCDCPFactory(TimeseriesFactory):
         interval = interval or self.interval
         days = self._get_days(starttime, endtime)
         timeseries = obspy.core.Stream()
+
         for day in days:
             url = self._get_url(observatory, day, type, interval)
             pcdcpFile = read_url(url)
             timeseries += self.parse_string(pcdcpFile)
+
         # merge channel traces for multiple days
         timeseries.merge()
+
         # trim to requested start/end time
         timeseries.trim(starttime, endtime)
+
         return timeseries
 
     def parse_string(self, pcdcpString):
@@ -165,6 +169,7 @@ class PCDCPFactory(TimeseriesFactory):
                     data[channel])
 
             stream += obspy.core.Trace(data[channel], stats)
+
         return stream
 
     def _get_url(self, observatory, date, type='variation', interval='minute'):
diff --git a/geomagio/pcdcp/PCDCPFactory_test.py b/geomagio/pcdcp/PCDCPFactory_test.py
index a028c2c80..897af7ad5 100644
--- a/geomagio/pcdcp/PCDCPFactory_test.py
+++ b/geomagio/pcdcp/PCDCPFactory_test.py
@@ -5,21 +5,23 @@ from obspy.core.utcdatetime import UTCDateTime
 from nose.tools import assert_equals
 
 
-def test__get_days():
-    """geomagio.pcdcp.PCDCPFactory_test.test__get_days()
+def test_parse_string():
+    """geomagio.pcdcp.PCDCPFactory_test.test_parse_string()
 
-    Call the _get_days method with starttime and endtime separated by more
-    than one day.
-    Verify it returns all days between the given starttime and endtime.
+    Send a PCDCP file string in to parse_string to make sure a well formed
+    stream is created with proper values.
     """
-    starttime = UTCDateTime('2014-01-01')
-    endtime = UTCDateTime('2014-01-07')
+    pcdcpString = "BOU  2015  001  01-Jan-15  HEZF  0.01nT  File Version 2.00\n"
+                + "0000  2086167    -5707  4745737  5237768\n"
+                + "0001  2086190    -5664  4745737  5237777\n"
+                + "0002  2086213    -5638  4745741  5237787\n"
+                + "0003  2086239    -5632  4745739  5237796\n"
+                + "0004  2086198    -5626  4745743  5237786\n"
 
-    assert_equals(PCDCPFactory('')._get_days(starttime, endtime), [
-                UTCDateTime('2014-01-01'),
-                UTCDateTime('2014-01-02'),
-                UTCDateTime('2014-01-03'),
-                UTCDateTime('2014-01-04'),
-                UTCDateTime('2014-01-05'),
-                UTCDateTime('2014-01-06'),
-                UTCDateTime('2014-01-07')])
+    stream = PCDCPFactory().parse_string(pcdcpString)
+
+    assert_equals(type(stream), obspy.core.stream.Stream)
+    assert_equals(stream[0].stats.network, 'NT')
+    assert_equals(stream[0].stats.station, 'BOU')
+    assert_equals(stream[0].stats.starttime,
+                UTCDateTime('2015-01-01T00:00:00.000000Z'))
diff --git a/geomagio/pcdcp/PCDCPWriter.py b/geomagio/pcdcp/PCDCPWriter.py
index dd10e5ec5..5ade04613 100644
--- a/geomagio/pcdcp/PCDCPWriter.py
+++ b/geomagio/pcdcp/PCDCPWriter.py
@@ -70,6 +70,7 @@ class PCDCPWriter(object):
             A string formatted to be the data lines in a PCDCP file.
         """
         buf = []
+
         if timeseries.select(channel='D'):
             d = timeseries.select(channel='D')
             d[0].data = ChannelConverter.get_minutes_from_radians(d[0].data)
-- 
GitLab