From eebc2d9bb2aabf0302ae261a377a2793378e04cb Mon Sep 17 00:00:00 2001 From: jkuensem <jkuensem@physik.uni-bielefeld.de> Date: Wed, 11 Nov 2020 12:16:44 +0100 Subject: [PATCH] TMSS-435: add tests for sunrise etc. --- SAS/TMSS/test/t_conversions.py | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/SAS/TMSS/test/t_conversions.py b/SAS/TMSS/test/t_conversions.py index ccd4025f6c4..14231c4f091 100755 --- a/SAS/TMSS/test/t_conversions.py +++ b/SAS/TMSS/test/t_conversions.py @@ -26,6 +26,7 @@ import logging import requests import dateutil.parser import astropy.coordinates +import json logger = logging.getLogger(__name__) logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', level=logging.INFO) @@ -127,6 +128,43 @@ class UtilREST(unittest.TestCase): lon_str2 = r2.content.decode('utf8') self.assertNotEqual(lon_str1, lon_str2) + def test_util_sun_rise_and_set_returns_json_structure_with_defaults(self): + r = requests.get(BASE_URL + '/util/sun_rise_and_set', auth=AUTH) + self.assertEqual(r.status_code, 200) + r_dict = json.loads(r.content.decode('utf-8')) + + # assert defaults to core and today + self.assertIn('CS002', r_dict.keys()) + sunrise_start = dateutil.parser.parse(r_dict['CS002']['sunrise'][0]['start']) + self.assertEqual(datetime.date.today(), sunrise_start.date()) + + def test_util_sun_rise_and_set_considers_stations(self): + stations = ['CS005', 'RS305', 'DE609'] + r = requests.get(BASE_URL + '/util/sun_rise_and_set?stations=%s' % ','.join(stations), auth=AUTH) + self.assertEqual(r.status_code, 200) + r_dict = json.loads(r.content.decode('utf-8')) + + # assert station is included in response and timestamps differ + sunset_start_last = None + for station in stations: + self.assertIn(station, r_dict.keys()) + sunset_start = dateutil.parser.parse(r_dict[station]['sunset'][0]['start']) + if sunset_start_last: + self.assertNotEqual(sunset_start, sunset_start_last) + sunset_start_last = sunset_start + + def test_util_sun_rise_and_set_considers_timestamps(self): + timestamps = ['2020-01-01', '2020-02-22T16-00-00', '2020-3-11', '2020-01-01'] + r = requests.get(BASE_URL + '/util/sun_rise_and_set?timestamps=%s' % ','.join(timestamps), auth=AUTH) + self.assertEqual(r.status_code, 200) + r_dict = json.loads(r.content.decode('utf-8')) + + # assert all requested timestamps are included in response (sunrise on same day) + for i in range(len(timestamps)): + expected_date = dateutil.parser.parse(timestamps[i]).date() + response_date = dateutil.parser.parse(r_dict['CS002']['sunrise'][i]['start']).date() + self.assertEqual(expected_date, response_date) + if __name__ == "__main__": os.environ['TZ'] = 'UTC' -- GitLab