コード例 #1
0
 def test_get_ned_objects_service_error(self):
     '''Test to see if retrieval of NED objects method behaves as expected'''
     from object_service.NED import get_ned_data
     identifiers = ["LMC"]
     mockdata = {
         u'NameResolver': u'NED-Egret',
         u'Copyright': u'(C) 2017 California Institute of Technology',
         u'Preferred': {
             u'Name': u'Large Magellanic Cloud'
         },
         u'ResultCode': 10,
         u'StatusCode': 100
     }
     QUERY_URL = self.app.config.get('OBJECTS_NED_URL')
     httpretty.register_uri(httpretty.POST,
                            QUERY_URL,
                            content_type='application/json',
                            status=500,
                            body='%s' % json.dumps(mockdata))
     result = get_ned_data(identifiers, 'identifiers')
     expected = {
         'Error': 'Unable to get results!',
         'Error Info': 'NED returned status 500'
     }
     self.assertEqual(result, expected)
コード例 #2
0
    def test_get_ned_objects_unknown_object(self):
        '''Test to see if retrieval of NED objects method behaves as expected'''
        from object_service.NED import get_ned_data
        identifiers = map(str, range(4))
        def get_mock_data(v, status_code=100):
            mockdata = {u'NameResolver': u'NED-Egret', 
                        u'Copyright': u'(C) 2017 California Institute of Technology',
                        u'Preferred': {u'Name': u'FOO BAR'}}
            try:
                mockdata['ResultCode'] = int(v)
            except:
                mockdata['ResultCode'] = 0
            mockdata['StatusCode'] = status_code
            return mockdata

        def request_callback(request, uri, headers):
            data = request.body
            v = json.loads(request.body)["name"]["v"]
            try:
                return (200, headers, json.dumps(get_mock_data(v)))
            except:
                return (200, headers, json.dumps(get_mock_data('0')))

        QUERY_URL = self.app.config.get('OBJECTS_NED_URL')
        httpretty.register_uri(
            httpretty.POST, QUERY_URL,
            content_type='application/json',
            status=200,
            body=request_callback)

        result = get_ned_data(identifiers, 'identifiers')
        expected = {'data': {'3': {'canonical': u'FOO BAR', 'id': '3'}},
                    'skipped': ['0','1','2']} 
        self.assertEqual(result, expected)
コード例 #3
0
    def test_ned_unknown_inputtype(self):
        '''Test to see if unknown input type works properly'''
        from object_service.NED import get_ned_data

        identifiers = ['NGC_1234','Abell_678']
        result = get_ned_data(identifiers, 'foo')
        expected = {'Error': 'Unable to get results!', 'Error Info': 'Unknown input type specified!'}
        self.assertDictEqual(result, expected)
コード例 #4
0
    def test_ned_simple_query(self):
        '''Test to see if the "simple" input type works properly'''
        from object_service.NED import get_ned_data

        identifiers = ['NGC_1234','Abell_678']
        result = get_ned_data(identifiers, 'simple')
        expected = {'data': {'Abell_678': {'canonical': 'Abell 678', 'id': 'Abell_678'},
                            'NGC_1234': {'canonical': 'NGC 1234', 'id': 'NGC_1234'}},
                    'skipped':[]
                   }
        self.assertDictEqual(result, expected)
コード例 #5
0
    def test_do_ned_query_objects_exception(self):
        '''Test to see if single NED query hrows proper exception at timeout'''
        from object_service.NED import get_ned_data

        def exceptionCallback(request, uri, headers):
            raise Exception('Oops! Something went boink!')

        identifiers = ['FOO_BAR']
        QUERY_URL = self.app.config.get('OBJECTS_NED_URL')
        httpretty.register_uri(
            httpretty.POST, QUERY_URL,
            body=exceptionCallback)
        result = get_ned_data(identifiers, "objects")
        expected = {'Error': 'Unable to get results!', 'Error Info': 'NED request failed (Oops! Something went boink!)'}
        self.assertDictEqual(result, expected)
コード例 #6
0
    def test_do_ned_query_objects_readtimeout(self):
        '''Test to see if single NED query throws proper exception at timeout'''
        from object_service.NED import get_ned_data

        def exceptionCallback(request, uri, headers):
            raise ReadTimeout('Connection timed out.')

        identifiers = ['FOO_BAR']
        self.app.config['OBJECTS_NED_TIMEOUT'] = 0.1
        QUERY_URL = self.app.config.get('OBJECTS_NED_URL')
        httpretty.register_uri(
            httpretty.POST, QUERY_URL,
            body=exceptionCallback)
        result = get_ned_data(identifiers, "objects")
        expected = {'Error': 'Unable to get results!', 'Error Info': 'NED request timed out: Connection timed out.'}
        self.assertDictEqual(result, expected)