コード例 #1
0
ファイル: schema.py プロジェクト: kaestli/mediatorws
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
ファイル: schema.py プロジェクト: kaestli/mediatorws
    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)
コード例 #5
0
    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']
コード例 #6
0
    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']
コード例 #7
0
    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', ))
コード例 #8
0
    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']
コード例 #9
0
    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']
コード例 #10
0
    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)
コード例 #11
0
    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)