def test_build_key_for_instance(self):
     url_params = dict(graph_uri="graph", class_uri="Class", instance_uri="instance")
     handler = MockHandler(**url_params)
     params = ParamDict(handler, **url_params)
     computed = build_instance_key(params)
     expected = "_@@_@@instance@@expand_uri=1&instance_uri=instance&lang=pt##instance"
     self.assertEqual(computed, expected)
Пример #2
0
    def test_instance_prefix_is_created_from_instance_id(self):
        handler = MockHandler()
        pd = {
            'class_uri': None,
            'instance_prefix': None,
            'class_name': u'Activity',
            'class_prefix': None,
            'instance_id': u'AdministrationAndSupportService',
            'context_name': u'organization',
            'graph_uri': None,
            'instance_uri': None
        }
        response = ParamDict(handler, **pd)

        self.assertEqual(response['class_uri'],
                         'http://semantica.globo.com/organization/Activity')
        self.assertEqual(response['instance_prefix'],
                         'http://semantica.globo.com/organization/')
        self.assertEqual(response['class_prefix'],
                         'http://semantica.globo.com/organization/')
        self.assertEqual(response['instance_id'],
                         u'AdministrationAndSupportService')
        self.assertEqual(
            response['instance_uri'],
            'http://semantica.globo.com/organization/Activity/AdministrationAndSupportService'
        )
    def test_assemble_list_json_with_class_prefix(self):
        handler = MockHandler(uri="http://poke.oioi/company/")
        params = ParamDict(handler, context_name="company", **LIST_PARAMS)
        item = {
            u'class': {
                u'type': u'uri',
                u'value': u'http://dbpedia.org/ontology/Company'
            },
            u'label': {
                u'type': u'literal',
                u'value': u'Company'
            }
        }
        query_result_dict = {'results': {'bindings': [item]}}
        computed = get_context.assemble_list_json(params, query_result_dict)

        expected_context = {'@language': settings.DEFAULT_LANG}
        expected_items = [{
            '@id': u'http://dbpedia.org/ontology/Company',
            'resource_id': u'Company',
            'title': u'Company',
            'class_prefix': u'http://dbpedia.org/ontology/'
        }]

        self.assertEqual(computed['@context'], expected_context)
        self.assertEqual(computed['items'], expected_items)
        self.assertEqual("http://poke.oioi/company", computed['_base_url'])
Пример #4
0
    def test_do_suggest_with_data(self, mock_get_predicate_ranges, mock_get_subproperties, mock_run_analyze, mock_run_search, mock_build_items, mock_decorate):
        handler = MockHandler()
        params = {
            'lang': 'pt',
            'expand_uri': '0',
            'do_item_count': '0',
            'per_page': '10',
            'page': '0'
        }
        query_params = ParamDict(handler, **params)
        suggest_params = {
            u'search': {
                u'target': u'http://semantica.globo.com/upper/isPartOf',
                u'pattern': u'Globoland',
                u'graphs': [u'http://semantica.globo.com/place/'],
                u'classes': [u'http://semantica.globo.com/place/City'],
                u'fields': [u'http://semantica.globo.com/upper/name', u'http://semantica.globo.com/upper/fullName']
            }
        }

        computed = suggest.do_suggest(query_params, suggest_params)
        expected = {
            '@context': {'@language': 'pt'},
            '_base_url': 'http://mock.test.com/',
            'items': [
                {
                    '@id': u'http://semantica.globo.com/place/City/bc9e708f-35c4-4067-836d-48aaa51d746d',
                    '@type': u'http://semantica.globo.com/place/City',
                    'title': u'Globoland: is the best',
                    'type_title': u'Cidade'
                }
            ]
        }
        self.assertEqual(computed, expected)
 def test_without_item_count(self):
     base_url = "http://api.semantica.dev.globoi.com"
     param_dict = {"do_item_count": "0", "per_page": "30", "page": "0"}
     handler = MockHandler(uri=base_url)
     params = ParamDict(handler, **param_dict)
     computed = list_all_contexts(params)
     self.assertTrue("item_count" not in computed)
Пример #6
0
 def test_crud_links_with_params_ok(self):
     params = {
         'instance_id': 'instance',
         'context_name': 'context',
         'class_name': 'Class'
     }
     handler = MockHandler(uri="http://any.uri/context/Class/instance",
                           querystring="lang=en",
                           **params)
     query_params = ParamDict(handler, **params)
     class_url = 'http://any.uri/context/Class'
     computed = crud_links(query_params, class_url)
     expected = [{
         'href':
         'http://any.uri/context/Class/{_resource_id}?instance_prefix={_instance_prefix}&lang=en',
         'method': 'DELETE',
         'rel': 'delete'
     }, {
         'href':
         'http://any.uri/context/Class/{_resource_id}?instance_prefix={_instance_prefix}&lang=en',
         'method': 'PUT',
         'rel': 'update',
         'schema': {
             '$ref': 'http://any.uri/context/Class/_schema'
         }
     }]
     self.assertEqual(sorted(computed), sorted(expected))
 def test_no_context_found(self, mock1):
     param_dict = {"per_page": "3", "page": "1"}
     base_url = "http://api.semantica.dev.globoi.com"
     handler = MockHandler(uri=base_url)
     params = ParamDict(handler, **param_dict)
     result = list_all_contexts(params)
     self.assertEqual(result["items"], [])
Пример #8
0
 def test_self_url(self):
     params = {'page': 1, 'per_page': 2}
     handler = MockHandler(uri="http://any.uri")
     query_params = ParamDict(handler, **params)
     computed = self_url(query_params)
     expected = 'http://any.uri'
     self.assertEqual(expected, computed)
 def test_unspecified_context_with_class_uri_must_set_class_name_and_graph_uri(
         self):
     handler = MockHandler(
         querystring="class_uri=http://dbpedia.org/ontology/News")
     response = ParamDict(handler, context_name="_", class_uri="News")
     self.assertEqual(response['graph_uri'], 'http://dbpedia.org/ontology/')
     self.assertEqual(response['class_name'], 'News')
Пример #10
0
 def test_defaults_with_basic_params(self):
     handler = MockHandler()
     params = ParamDict(handler,
                        context_name='ctx_name',
                        class_name='klass')
     self.assertEquals('ctx_name', params.get("context_name"))
     self.assertEquals('klass', params.get("class_name"))
Пример #11
0
 def test_class_uri_sets_class_prefix_overriding_slug(self):
     handler = MockHandler()
     params = ParamDict(handler,
                        context_name="glb",
                        class_uri="base:Conteudo")
     self.assertEquals(u'http://semantica.globo.com/base/',
                       params.get("class_prefix"))
 def test_query_with_prev_and_next_args_with_sort_by_and_lang(self, mock_get_schema):
     handler = MockHandler(querystring="page=2&per_page=1&sort_by=rdfs:label&lang=en")
     params = ParamDict(handler, context_name="subject", class_name="Maths", **(LIST_PARAMS))
     items = []
     computed = build_json(items, params)
     self.assertQueryStringArgsEqual(computed["_previous_args"], 'per_page=1&page=1&sort_by=rdfs%3Alabel&lang=en')
     self.assertQueryStringArgsEqual(computed["_next_args"], 'per_page=1&page=3&sort_by=rdfs%3Alabel&lang=en')
Пример #13
0
 def test_to_string_witn_non_default_params(self):
     url_params = dict(page="1", sort_by="rdfs:label", per_page="10")
     handler = MockHandler(**url_params)
     pd = ParamDict(handler, **url_params)
     self.assertEquals(
         pd.to_string(),
         "expand_uri=0&lang=pt&page=1&per_page=10&sort_by=rdfs:label")
 def test_instance_uri_and_prefix(self):
     handler = MockHandler()
     params = ParamDict(handler,
                        context_name='dbpedia', class_name='klass', instance_id='inst',
                        instance_uri="http://this/should/be/used",
                        instance_prefix="http://this/is/less/important/than/instance_uri")
     self.assertEquals(params["instance_uri"], "http://this/should/be/used")
 def test_initialize(self):
     handler = MockHandler()
     pd = ParamDict(handler, context_name="context_name", class_name="class_name")
     self.assertIn("context_name", pd)
     self.assertIn("class_name", pd)
     self.assertEquals("context_name", pd.get("context_name"))
     self.assertEquals("class_name", pd.get("class_name"))
 def test_arguments_o_o1_o2_o3(self):
     handler = MockHandler(querystring="o=0&o1=1&o2=2&o3=3")
     param_dict = params.ParamDict(handler)
     self.assertEqual(param_dict.arguments['o'], '0')
     self.assertEqual(param_dict.arguments['o1'], '1')
     self.assertEqual(param_dict.arguments['o2'], '2')
     self.assertEqual(param_dict.arguments['o3'], '3')
Пример #17
0
 def test_invalid_request_missing_dependent_param(self):
     handler = MockHandler(
         querystring="class_prefix=http://someDomain.com/someContext/")
     self.assertRaises(RequiredParamMissing,
                       ParamDict,
                       handler,
                       context_name='someContext')
Пример #18
0
 def test_class_prefix(self):
     handler = MockHandler()
     params = ParamDict(handler,
                        context_name='dbpedia',
                        class_name='klass',
                        class_prefix="http://this/should/be/used/")
     self.assertEquals(params["class_uri"],
                       "http://this/should/be/used/klass")
Пример #19
0
 def test_class_uri_from_context_and_class(self):
     handler = MockHandler()
     params = ParamDict(handler,
                        context_name="dbpedia",
                        class_name="Actor",
                        class_uri=None)
     self.assertEquals(params["class_uri"],
                       "http://dbpedia.org/ontology/Actor")
Пример #20
0
 def test_override(self):
     handler = MockHandler(
         querystring="context_name=dbpedia&class_name=overriden_class_name")
     params = ParamDict(handler,
                        context_name='dbpedia',
                        class_name="default_class_name",
                        class_prefix=None)
     self.assertEquals("overriden_class_name", params.get("class_name"))
Пример #21
0
 def test_class_uri_from_context_and_class_with_class_prefix(self):
     handler = MockHandler(querystring="class_prefix=http://someprefix/")
     params = ParamDict(handler,
                        context_name='dbpedia',
                        class_name='Actor',
                        class_prefix=None)
     self.assertEquals(params["class_prefix"], "http://someprefix/")
     self.assertEquals(params["class_uri"], "http://someprefix/Actor")
 def test_invalid_argument_in_request(self):
     handler = MockHandler(querystring="inexistent_argument=whatever")
     self.assertRaises(InvalidParam,
                       ParamDict,
                       handler,
                       context_name='dbpedia',
                       class_name="default_class_name",
                       class_prefix=None)
 def test_list_classes_with_no_result(self, mocked_graph_exists):
     get_context.get_one_value = lambda x, y: "0"
     handler = MockHandler(page="1")
     params = ParamDict(handler,
                        context_name="context_name",
                        class_name="class_name",
                        **LIST_PARAMS)
     result = get_context.list_classes(params)
     self.assertEqual(result["items"], [])
Пример #24
0
 def test_class_name_from_class_uri(self):
     handler = MockHandler()
     pd = ParamDict(
         handler, class_uri='http://somedomain/someGraphName/someClassName')
     self.assertEquals(pd["class_uri"],
                       "http://somedomain/someGraphName/someClassName")
     self.assertEquals(pd["class_name"], "someClassName")
     self.assertEquals(pd["class_prefix"],
                       "http://somedomain/someGraphName/")
Пример #25
0
 def test_ctx_class_inst_id(self):
     handler = MockHandler()
     params = ParamDict(handler,
                        context_name='person',
                        class_name='Gender',
                        instance_id="Male",
                        **INSTANCE_PARAMS)
     self.assertEquals(params["instance_uri"],
                       "http://semantica.globo.com/person/Gender/Male")
 def test_valid_json_schema_for_collection(self, mock_cached_schema,
                                           mock_settings):
     handler = MockHandler()
     query_params = ParamDict(
         handler,
         context_name='glb',
         class_name='Materia',
         class_prefix='http://semantica.globo.com/base/')
     schema = collection_json_schema.schema(query_params)
     self.validate_draft4(schema)
Пример #27
0
 def test_query_with_extras(self, mock_get_schema):
     handler = MockHandler(querystring="class_prefix=Xubiru")
     params = ParamDict(handler,
                        context_name="zoo",
                        class_name="Lion",
                        **(LIST_PARAMS))
     items = []
     something = build_json(items, params)
     self.assertEqual(something["@context"], {'@language': 'pt'})
     self.assertEqual(something["items"], [])
Пример #28
0
    def test_query_superclasses(self):
        handler = MockHandler()
        params = ParamDict(handler, class_uri="http://example.onto/City")

        expected_bindings = [{u'class': {u'type': u'uri', u'value': u'http://example.onto/City'}},
                             {u'class': {u'type': u'uri', u'value': u'http://example.onto/Place'}}]

        query = QUERY_SUPERCLASS % params
        response = self.query(query)
        self.assertEqual(response["results"]["bindings"], expected_bindings)
Пример #29
0
 def test_last_link(self):
     params = {'page': 1, 'per_page': 2}
     handler = MockHandler(uri="http://any.uri")
     query_params = ParamDict(handler, **params)
     computed = last_link(query_params, 10)
     expected = [{
         'href': 'http://any.uri?per_page=2&page=5',
         'method': 'GET',
         'rel': 'last'
     }]
     self.assertEqual(computed, expected)
Пример #30
0
 def test_pagination_without_previous_page(self):
     params = {'page': 0, 'per_page': 3}
     handler = MockHandler(uri="http://any.uri/",
                           querystring="page=1&per_page=3")
     query_params = ParamDict(handler, **params)
     computed = pagination_items(query_params, 3)
     self.assertEqual(len(computed), 2)
     self.assertQueryStringArgsEqual(computed['_first_args'],
                                     'per_page=3&page=1')
     self.assertQueryStringArgsEqual(computed['_next_args'],
                                     'per_page=3&page=2')