def test_many_sncls(self, mock_request): # request.method == 'POST' mock_request.method = 'POST' s = schema.ManyStreamEpochSchema(context={'request': mock_request}) reference_result = [ sncl.StreamEpoch(stream=sncl.Stream(network='CH', station='DAVOX'), starttime=datetime.datetime(2017, 1, 1), endtime=datetime.datetime(2017, 1, 31)), sncl.StreamEpoch(stream=sncl.Stream(network='GR', station='BFO', channel='BH?'), starttime=datetime.datetime(2017, 1, 1), endtime=datetime.datetime(2017, 1, 31)) ] test_dataset = { 'stream_epochs': [{ 'net': 'CH', 'sta': 'DAVOX', 'start': '2017-01-01', 'end': '2017-01-31' }, { 'net': 'GR', 'sta': 'BFO', 'cha': 'BH?', 'start': '2017-01-01', 'end': '2017-01-31' }] } result = s.load(test_dataset)['stream_epochs'] self.assertEqual(result, reference_result)
def test_get_multiple(self, mock_request): mock_request.method = 'GET' mock_request.args = MultiDict({ 'f': 'value', 'net': 'CH', 'sta': 'DAVOX,BALST', 'start': '2017-01-01', 'end': '2017-01-07' }) reference_sncls = [ sncl.StreamEpoch.from_sncl(network='CH', station='DAVOX', location='*', channel='*', starttime=datetime.datetime(2017, 1, 1), endtime=datetime.datetime(2017, 1, 7)), sncl.StreamEpoch.from_sncl(network='CH', station='BALST', location='*', channel='*', starttime=datetime.datetime(2017, 1, 1), endtime=datetime.datetime(2017, 1, 7)) ] test_args = parser.parse(self.TestSchema(), mock_request, locations=('query', )) self.assertEqual(dict(test_args), {'f': 'value'}) sncls = fdsnws.fdsnws_parser.parse( schema.ManyStreamEpochSchema(context={'request': mock_request}), mock_request, locations=('query', ))['stream_epochs'] self.assertEqual(sncls, reference_sncls)
def test_post_multiple(self, mock_request): test_str = (b"f=value\nNL HGN ?? * 2013-10-10 2013-10-11\n" b"GR BFO * * 2017-01-01 2017-01-31") mock_request.method = 'POST' mock_request.content_length = len(test_str) mock_request.get_data.return_value = test_str.decode('utf-8') reference_sncls = [ sncl.StreamEpoch.from_sncl(network='NL', station='HGN', location='??', channel='*', starttime=datetime.datetime( 2013, 10, 10), endtime=datetime.datetime(2013, 10, 11)), sncl.StreamEpoch.from_sncl(network='GR', station='BFO', location='*', channel='*', starttime=datetime.datetime(2017, 1, 1), endtime=datetime.datetime(2017, 1, 31)) ] test_args = fdsnws.fdsnws_parser.parse(self.TestSchema(), mock_request, locations=('form', )) self.assertEqual(dict(test_args), {'f': 'value'}) sncls = fdsnws.fdsnws_parser.parse( schema.ManyStreamEpochSchema(context={'request': mock_request}), mock_request, locations=('form', ))['stream_epochs'] self.assertEqual(sncls, reference_sncls)
def test_post_missing_sncl(self, mock_request): # request.method == 'POST' mock_request.method = 'POST' s = schema.ManyStreamEpochSchema(context={'request': mock_request}) test_dataset = [] with self.assertRaises(ma.ValidationError): s.load(test_dataset)
def test_post_empty(self, mock_request): mock_request.method = 'POST' mock_request.stream = io.StringIO("") with self.assertRaises(HTTPException): fdsnws.fdsnws_parser.parse(schema.ManyStreamEpochSchema( context={'request': mock_request}), mock_request, locations=('form', ))['stream_epochs']
def test_post_empty(self, mock_request): test_str = b"" mock_request.method = 'POST' mock_request.content_length = len(test_str) mock_request.get_data.return_value = test_str.decode('utf-8') with self.assertRaises(HTTPException): fdsnws.fdsnws_parser.parse(schema.ManyStreamEpochSchema( context={'request': mock_request}), mock_request, locations=('form', ))['stream_epochs']
def test_post_missing(self, mock_request): mock_request.method = 'POST' mock_request.stream = io.StringIO("f=value\n") test_args = fdsnws.fdsnws_parser.parse(self.TestSchema(), mock_request, locations=('form', )) self.assertEqual(dict(test_args), {'f': 'value'}) with self.assertRaises(HTTPException): fdsnws.fdsnws_parser.parse(schema.ManyStreamEpochSchema( context={'request': mock_request}), mock_request, locations=('form', ))
def test_get_invalid(self, mock_request): mock_request.method = 'GET' mock_request.args = MultiDict({'f': 'value', 'net': 'CH!, GR'}) test_args = parser.parse(self.TestSchema(), mock_request, locations=('query', )) self.assertEqual(dict(test_args), {'f': 'value'}) with self.assertRaises(HTTPException): fdsnws.fdsnws_parser.parse(schema.ManyStreamEpochSchema( context={'request': mock_request}), mock_request, locations=('query', ))['stream_epochs']
def test_post_invalid(self, mock_request): test_str = b"f=value\nNL HGN * 2013-10-10 2013-10-11" mock_request.method = 'POST' mock_request.content_length = len(test_str) mock_request.get_data.return_value = test_str.decode('utf-8') test_args = fdsnws.fdsnws_parser.parse(self.TestSchema(), mock_request, locations=('form', )) self.assertEqual(dict(test_args), {'f': 'value'}) with self.assertRaises(HTTPException): fdsnws.fdsnws_parser.parse(schema.ManyStreamEpochSchema( context={'request': mock_request}), mock_request, locations=('form', ))['stream_epochs']
def test_get_missing(self, mock_request): mock_request.method = 'GET' mock_request.args = MultiDict({'f': 'value'}) reference_sncls = [sncl.StreamEpoch(stream=sncl.Stream())] test_args = parser.parse(self.TestSchema(), mock_request, locations=('query', )) self.assertEqual(dict(test_args), {'f': 'value'}) sncls = fdsnws.fdsnws_parser.parse( schema.ManyStreamEpochSchema(context={'request': mock_request}), mock_request, locations=('query', ))['stream_epochs'] self.assertEqual(sncls, reference_sncls)
def test_post_single(self, mock_request): mock_request.method = 'POST' mock_request.stream = io.StringIO( "f=value\nNL HGN ?? * 2013-10-10 2013-10-11") reference_sncls = [ sncl.StreamEpoch.from_sncl(network='NL', station='HGN', location='??', channel='*', starttime=datetime.datetime( 2013, 10, 10), endtime=datetime.datetime(2013, 10, 11)) ] test_args = fdsnws.fdsnws_parser.parse(self.TestSchema(), mock_request, locations=('form', )) self.assertEqual(dict(test_args), {'f': 'value'}) sncls = fdsnws.fdsnws_parser.parse( schema.ManyStreamEpochSchema(context={'request': mock_request}), mock_request, locations=('form', ))['stream_epochs'] self.assertEqual(sncls, reference_sncls)